我得到了下面的代码,我从两个变量中得到了相同的值,但是赋值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
答案 0 :(得分:0)
两个变量的值为134513904,这是什么
它是存储字符串aa
的位置的地址。只有aa
的一个副本存储在“只读”部分,其地址存储在a
和b
变量中。
由于int
不应该保留地址,因此编译器将发出警告。