转自https://blog.csdn.net/zhengyikuangge/article/details/84665427
声明字符指针并赋值字符串:char *s1 = "abc"
其实实际物理存储模式和字符数组是一样的,一个地址存一个字符,但是有两个和字符数组完全不同的地方。
1、赋值后不可修改数据
2、移动指针输出字符时,是从当前指针位置开始输出,到‘\0’停止
char *s = "hello";
char str[] = "hello";
printf("%s\n%p\n%p\n\n",s,s,s+1);
printf("%s\n%p\n%p\n",str,str,str+1);
输出:
hello
0x100005efa
0x100005efb
hello
0x7ffeefbff492
0x7ffeefbff493