Are these two things same?
char* firstname = "rohit;
char secondname[] ="jangid";
answer is NO, they are not same .
why ?
suppose both these lines are there in a program hello.c.
two things happen
memory to "rohit" is allocated in a write protected area of the program also called "data section" of the program, means that we can't make any changes in "rohit". obviously firstname is only pointing to this memory section and we can use firstname++ without any error
whereas memory to "jangid" is actually allocated in a local stack, in array secondname.
here secondname can be treated as const pointer, which means that we can's use secondname++, but we can modify the string "jangid" without any error as it is not protected.
No comments:
Post a Comment