指针指向字符串和数组储存字符串区别
定义了一个指向字符串的指针,str是在栈上分配的变量,储存的地址对应的是在常量区中分配的空间。"aafg"是存储在常量区里面,
是不能改变的。char *str 其实存在一种 const char *类型的隐式转换,而strcpy要做的改变常量,所以程序编译的时候没错,运行的
时候就出错了。
这个程序和上面的程序的区别就是在于字符串存储的位置,定义了一个数组,在栈上分配空间。就是修改也是普通的数组赋值。
所以程序不会报错。
定义了一个指向字符串的指针,str是在栈上分配的变量,储存的地址对应的是在常量区中分配的空间。"aafg"是存储在常量区里面,
是不能改变的。char *str 其实存在一种 const char *类型的隐式转换,而strcpy要做的改变常量,所以程序编译的时候没错,运行的
时候就出错了。
这个程序和上面的程序的区别就是在于字符串存储的位置,定义了一个数组,在栈上分配空间。就是修改也是普通的数组赋值。
所以程序不会报错。