int x = "H";
printf("x is %i\n", x);
每次执行上面的代码时,我都会从控制台获得一个随机的8位数字...我给了X一个明确的值,但为什么每次执行都得到一个随机值?谢谢!
答案 0 :(得分:15)
那是因为您要为整数分配"char*"
(字符指针)。也许你的意思是:
int x = 'H'; /* <-- Note single quotes, not doubles. */
printf("x is %i\n", x);
字符指针"H"
可以放在编译器/链接器/加载器所需的内存中(并且每次都可以更改)。然后,您将该内存地址存储在x
中(如果指针数据类型的位数多于整数,则可能会丢失精度)。
然而字符 'H'
将始终是相同的值(假设您使用相同的基础字符集 - 显然,如果您在EBCDIC平台上编译它,它将会有所不同System z USS)。