每次程序执行时,赋值变量随机改变值(C编程)

时间:2009-09-24 04:36:06

标签: c

int x = "H";
printf("x is %i\n", x);

每次执行上面的代码时,我都会从控制台获得一个随机的8位数字...我给了X一个明确的值,但为什么每次执行都得到一个随机值?谢谢!

1 个答案:

答案 0 :(得分:15)

那是因为您要为整数分配"char*"(字符指针)。也许你的意思是:

int x = 'H'; /* <-- Note single quotes, not doubles. */
printf("x is %i\n", x);

字符指针"H"可以放在编译器/链接器/加载器所需的内存中(并且每次都可以更改)。然后,您将该内存地址存储在x中(如果指针数据类型的位数多于整数,则可能会丢失精度)。

然而字符 'H'将始终是相同的值(假设您使用相同的基础字符集 - 显然,如果您在EBCDIC平台上编译它,它将会有所不同System z USS)。