什么将“ aa”字符串分配给整数变量?

时间:2019-11-06 06:49:22

标签: c type-conversion

我得到了下面的代码,我从两个变量中得到了相同的值,但是赋值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

1 个答案:

答案 0 :(得分:0)

  

两个变量的值为134513904,这是什么

它是存储字符串aa的位置的地址。只有aa的一个副本存储在“只读”部分,其地址存储在ab变量中。

由于int不应该保留地址,因此编译器将发出警告。