#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main()
{
char* string1 = "Hello World!";//定义指针类型字符串
char string2[] = "Hello World!";//定义数组类型字符串
char string3[100];//定义一个空字符串
//scanf("%s", string1);//5(对指针定义的字符串进行修改程序不会运行)
scanf("%s", string2);//对非空字符串进行赋值
scanf("%s", string3);//对空字符串进行赋值
printf("%s\n", string1);
printf("%s\n", string2);
printf("%s\n", string3);
return 0;
}
/*指针定义的字符串变量:位于只读段,无法修改,若对其更改则程序无法与运行*/
/*数组定义的字符串变量:程序有时(?)会报误“栈堆已损坏”,但程序依然会运行。得出结论数组定义的字符串只能调用(赋值给其他字符串变量),但无法更改*/
/*空字符串和数组定义的字符串都无法被修改,指针定义的字符串可以被修改,但指针定义的字符串无法被用户赋值*/
用户对数组定义的字符串string2赋值时有时会出现该错误
空字符串和数组定义的字符串都无法被修改,指针定义的字符串可以被修改,但指针定义的字符串无法被用户赋值