简单提一嘴
指针与字符数组
- 初始化
char str[] = "mfsll";
char *p = str;
将字符数组的名称赋给指针时,实际上是将指针指向字符数组的第一个字符的地址,也就是把内存里面存放字符的数组的首地址赋给指针,类似C语言的局部变量存放在栈,等待后续处理
指针与字符串
- 初始化(直接把字符串赋给指针)
char *p = "mfsll";
这个时候指针指向字符串常量的内存地址,字符串常量是存储在程序的静态存储区域,不能对其(指针的值)进行修改,修改基本就会出现段错误(一般是内存问题,指针访问非法)的报错!
补充:静态存储区域一般为:1)全局变量; 2)static; 3)字符串常量