【发布时间】:2019-11-06 06:49:22
【问题描述】:
我得到了下面的代码,我从两个变量中得到了相同的值,但是赋值 b 抛出一个错误,打印后的值是什么,两个变量的值为 134513904 这是什么
int a=(int)"aa",b="aa";
printf("%d,%d",a,b);
if.c: In function ‘main’:
if.c:6:19: warning: initialization makes integer from pointer without a cast [enabled by default]
cast [enabled by default]
int a=(int)"aa",b="aa";
^
134513904,134513904
shell returned 19
然后: printf("%s:%s",a,b); 它打印字符串 =>aa:aa
【问题讨论】:
-
这个警告几乎总是被认为是一个错误。
-
你能告诉我什么是错误,什么是警告?你怎么说警告被认为是错误的。
-
错误:您做的完全错误,程序无法编译。警告:你做错了什么,但如果你知道自己在做什么,你可能会侥幸逃脱。
-
'KP Creations' 大约一个小时前问了同样的问题。
标签: c type-conversion