这是我的简单程序
char *array = 1==1;
if((bool)array == true)
printf("true");
Output: true
Run Code Online (Sandbox Code Playgroud)
但是当我更改数组时
*array = 1==2;
Output: true
Run Code Online (Sandbox Code Playgroud)
我不知道为什么总是如此.我只想打印变量中的字符串array
是否为true
或false
.
如果你这样做:
char *array = 1==2;
Run Code Online (Sandbox Code Playgroud)
那么(bool)array
肯定是假的,就像你期望的那样,因为你刚刚写了一个非常奇怪的方法,将指针'array'设置为null(零).
但是,如果相反,你这样做
char *array = 1==1;
*array = 1==2;
Run Code Online (Sandbox Code Playgroud)
然后,你所做的是初始化array
为指向地址'1'的指针,然后将'false'(零)写入该地址.这几乎肯定会使您的程序在任何现代平台上崩溃,尽管在小型嵌入式平台上可能会发生其他事情(可能对您来说很意外).
归档时间: |
|
查看次数: |
132 次 |
最近记录: |