what is the difference between these initializations?
Char a[]=”string”;
Char *p=”literal”;
Does *p++ increment p, or what it points to?
Answer Posted / koti
Actually char a[ ]="string" in this scenario string constant is stored in read-only memory section and also stack section.in this case you can modify the string constant.that modifications are happened in stack section .so here
*a ++ men's
1 ) a is pointing to base address of string constant .
2 ) *a men's inside content that is 's'.
3 ) *a ++ men's incrementing the asci value of 's'. After that you can print this array like
Printf("%s",a);
O/P : ttring.
Coming to the *p ="literal" this scenario
1 ) *p is stored in stack section why because it is auto variable.
2 ) "literal" this string constant is stored in read-only memory section.
3 ) P is pointing to string constant Base addres
Here *p++ men's you are training to change read only memory section contact. so it is an error why because
You can't modified the read-only memory content.
Main difference is using arrays string constant is stored in both stack and read-only memory section.
Using pointers string constant is stored in read-only memory section only .
Thank you.
| Is This Answer Correct ? | 0 Yes | 0 No |
Post New Answer View All Answers
Explain how are portions of a program disabled in demo versions?
Why c is called a mid level programming language?
How can I read data from data files with particular formats?
what are bit fields? What is the use of bit fields in a structure declaration?
in any language the sound structure of that language depends on its a) character set, input/output function, its control structures b) character set, library functions, input/output functions its control structures c) character set, library functions, control sturctures d) character set, operators, its control structures
What is the difference between constant pointer and constant variable?
What is mean by Data Driven framework in QTP? Can any one answer me in details on this regard.
Why use int main instead of void main?
How do I get a null pointer in my programs?
What is the meaning of typedef struct in c?
Is c is a procedural language?
Difference between Shallow copy and Deep copy?
Explain the use of bit fieild.
What is ponter?
What is cohesion in c?