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
What is character set?
Is anything faster than c?
What is putchar() function?
What are the standard predefined macros?
How do you sort filenames in a directory?
Where are some collections of useful code fragments and examples?
Tell me what is null pointer in c?
How many header files are in c?
write a program to display all prime numbers
Why do we use header files in c?
What is string function c?
What are the types of data files?
What is the difference between scanf and fscanf?
Why can arithmetic operations not be performed on void pointers?
explain what is an endless loop?