定义了一个指向字符串的指针,str是在栈上分配的变量,储存的地址对应的是在常量区中分配的空间。"aafg"是存储在常量区里面,
是不能改变的。char *str 其实存在一种 const char *类型的隐式转换,而strcpy要做的改变常量,所以程序编译的时候没错,运行的
时候就出错了。
这个程序和上面的程序的区别就是在于字符串存储的位置,定义了一个数组,在栈上分配空间。就是修改也是普通的数组赋值。
所以程序不会报错。
strcpy使用详解
本文通过两个实例详细解析了在C语言中使用strcpy函数时可能出现的问题。第一个例子展示了将一个字符串复制到一个只读字符串时发生的错误,并解释了为何会出现这种错误。第二个例子则演示了正确的字符串复制方法。
定义了一个指向字符串的指针,str是在栈上分配的变量,储存的地址对应的是在常量区中分配的空间。"aafg"是存储在常量区里面,
是不能改变的。char *str 其实存在一种 const char *类型的隐式转换,而strcpy要做的改变常量,所以程序编译的时候没错,运行的
时候就出错了。
这个程序和上面的程序的区别就是在于字符串存储的位置,定义了一个数组,在栈上分配空间。就是修改也是普通的数组赋值。
所以程序不会报错。
5545

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