我们能把字符串值赋给int变量吗?在int a=“aa”行发生了什么转换;我正在运行这个C程序,每个程序执行时打印的值都不同。
int main() { int a="aa"; printf("%d",++a); return 0; }
deyfvvtc1#
在C中,字符串常量"aa"是指向字符串"aa"的只读内存位置的char *(在C++中是const char *)。您将此指针转换为整数,即您将内存地址转换为数字。根据您使用的平台,此内存地址可能会在每次程序运行时更改。
"aa"
char *
const char *
1条答案
按热度按时间deyfvvtc1#
在C中,字符串常量
"aa"
是指向字符串"aa"
的只读内存位置的char *
(在C++中是const char *
)。您将此指针转换为整数,即您将内存地址转换为数字。根据您使用的平台,此内存地址可能会在每次程序运行时更改。