字符串的区别,说字符串字面量直接保存常量储区中,而使用指针是直接指向常亮存储区中的地址,使用数组是将这个字符串字面量的副本保存在数组里面,直接表现就是数组的地址和指针指向的地址不一样。而且书中说使用指针的方式是无法修改字符串的。(原话是“指针指向的字符串字面量不能更改”)
#define MSG "I'm special"
#include <stdio>
int main()
{
char ar[] = MSG;
const char *pt = MSG;
printf("address of \"I'm special\": %p \n", "I'm special");
printf(" address ar: %p\n", ar);
printf(" address pt: %p\n", pt);
printf(" address of MSG: %p\n", MSG);
return 0;
}
输出结果:
address of "I'm special": 0x100000f10
address ar: 0x7fff5fbff858
address pt: 0x100000f10
address of MSG: 0x100000f10

被折叠的 条评论
为什么被折叠?



