我得到了下面的代码,我从两个变量中得到了相同的值,但赋值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
两个变量的值都是134513904这个是什么
它是存储字符串aa
的位置的地址。即只有aa
的一个副本存储在"仅就绪"部分,其地址存储在a
和b
变量中。
由于int
不应该保存地址,所以编译器正在抛出警告。