【发布时间】:2017-07-28 05:41:39
【问题描述】:
#include<stdio.h>
int main()
{
char *a;
char *temp ='55515';
a = &temp;
printf("%s ", a);
}
预期输出是 55515 但实际输出是 5155?
【问题讨论】:
-
'55515'对于字符文字来说太长了,a = &temp将char**分配给char*,i未使用,您为什么希望其中的任何部分起作用? -
你的编译器没有给你任何警告吗?
-
使用
temp = "555515"和printf("%s", temp);... -
这仍然不能解释为什么输出被反转。
-
'555515' 与 "555515" 不同。 AND printf("%s", *a);与 printf("%s", a); 不同*a= temp 的值,但 a=temp 的地址。