что случилось, когда "аа" строка присваивается целочисленной переменной? - PullRequest
0 голосов
/ 06 ноября 2019

я получил код ниже, я получил одно и то же значение из обеих переменных, но присвоение 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);это печатать строку => аа: аа

1 Ответ

0 голосов
/ 06 ноября 2019

значение равно 134513904 от обеих переменных, что это такое

Это адрес места, где хранится строка aa. То есть только одна копия aa хранится в разделе «только для готовности», а ее адрес хранится в переменных a и b.

Поскольку int не должен содержать адрес, компилятор выдает предупреждение.

...