我试图为字符串指针赋值.它正在编译并运行,但没有打印正确的答案?
char *x = "girl";
*x = x[3];
printf("%s\n",x);
Run Code Online (Sandbox Code Playgroud)
为什么不打印"lirl"?
你不能像这样修改字符串文字.这是未定义的行为.
你应该这样做:
char x[] = "girl";
x[0] = x[3];
printf("%s\n",x);
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为"girl"现在是一个数组初始化器x[].这只是一个简短形式:
char x[] = {'g', 'i', 'r', 'l', '\0'};
Run Code Online (Sandbox Code Playgroud)
所以这是允许的.
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |