Why can we change the value of a constant variable through the pointer which points to it in the C language?

Asked by Last Modified  

Follow 4
Answer

Please enter your answer

Assistant Professor

A variable, const or not, is just a location in memory, and you can break the rules of constness and simply overwrite it. (Of course, this will cause a severe bug if some other part of the program is depending on its const data being constant!) . But the conclusion is this is an "Undefined behavior"(Depends...
read more
A variable, const or not, is just a location in memory, and you can break the rules of constness and simply overwrite it. (Of course, this will cause a severe bug if some other part of the program is depending on its const data being constant!) . But the conclusion is this is an "Undefined behavior"(Depends on compiler ...but most of time yes) read less
Comments

Oracle, Hindi, C++, C, MS Office, VBScript,JavaScript,Spoken English etc with 32 years of experience

You should not be able to do that without lots of complaints from the compiler…but if you ignore them and go ahead and do it anyway, the results are completely undefined. They will vary from compiler to compiler - they’ll be different for some constants rather than others - and the consequences will...
read more
You should not be able to do that without lots of complaints from the compiler…but if you ignore them and go ahead and do it anyway, the results are completely undefined. They will vary from compiler to compiler - they’ll be different for some constants rather than others - and the consequences will be different at different optimisation levels. You may even find that when you do this - the value of the constant ends up being different in different places within your program. So - please don’t assume you can do this - don’t even try…you’re asking for trouble. The reason why it might work is that the constant is probably stored in a specific location in memory, just like a non-constant would be stored. read less
Comments

Trainer

As the variable is constant the value cannot be changed directly and C has a provision of changing the value through pointer. But this concept is not proper way
Comments

View 1 more Answers

Related Questions

Is a default case necessary in a switch statement?
NO, default is optional and you can omit it if there is no use of it.
Profile Photo
My
how to calculate address of n dimensional matrix
An n dimensional matrix can be of any dimension. Adding a dimension is adding one more index number (to access the element). In 1-D array you the elements are linearly arranged and can be addressed as...
Profile Photo
Rupendra
Who created C?
C programming language was created by Dennis Ritchie at Bell Labs in the early 1970s. Along with Ken Thompson, Ritchie developed C as an evolution of the B programming language, aiming to provide a more...
Profile Photo
Srinivasan
0 0
View Comments8
What is an lvalue?
L-value is short form for left side value. Similarly, r-value, means, right side value.
Profile Photo
Nagasanthoshi

Now ask question in any of the 1000+ Categories, and get Answers from Tutors and Trainers on UrbanPro.com

Ask a Question

Related Lessons

Pointers and References
Are reference and pointers same? No. I have seen this confusion crumbling up among the student from the first day. So better clear out this confusion at thevery beginning. Pointers and reference...
Profile Photo

Why C is a Language and not a database?
When I interviewed a candidate, I raised this question many times, but I have not got the answer correctly. To under why C is a language and not a database, it is good to understand why our communication...
Profile Photo

Why do pointers have a datatype?
Before we start with pointers you must know what is a variable and a datatype. int a; This is the basic line in every program in 'C' . It means that we are asking the compiler to give us 2 bytes of space...
Profile Photo


Array vs Linked List
Array Linked List Accessing element is easy. Accessing element is difficult compare to Array. Easy to use. Difficult to use. Memory is Fixed size. Memory is variable size. If...
Profile Photo

Recommended Articles

Brilliant Academy is one of the reputed institutes for B.Tech tuition classes. This institute is specialised in delivering quality tuition classes for B.E, Engineering - all streams and Engineering diploma courses. Incorporated in 2012, Brillant Academy is a brainchild of Mr Jagadeesh. The main motto of the academy is to...

Read full article >

Lasya Infotech is a Hyderabad based IT training institute founded in 2016 by O Venkat. Believing in his innovation, passion and persistence and with a diverse blend of experience, he started his brainchild to deliver exemplary professional courses to aspiring candidates by honing their skills. Ever since the institute envisions...

Read full article >

Software Development has been one of the most popular career trends since years. The reason behind this is the fact that software are being used almost everywhere today.  In all of our lives, from the morning’s alarm clock to the coffee maker, car, mobile phone, computer, ATM and in almost everything we use in our daily...

Read full article >

Applications engineering is a hot trend in the current IT market.  An applications engineer is responsible for designing and application of technology products relating to various aspects of computing. To accomplish this, he/she has to work collaboratively with the company’s manufacturing, marketing, sales, and customer...

Read full article >

Looking for C Language Classes?

Learn from the Best Tutors on UrbanPro

Are you a Tutor or Training Institute?

Join UrbanPro Today to find students near you