s*********d 发帖数: 2406 | 1 请教
int s=1; //1
int *p;
*p=s ;
char *ps=(char*) p ; //2
printf("ps is %d ,%c", *ps, *ps); //3
bool ps1=(bool) *ps ; //4
1)
//2的值好像还是1,但是这个1好像还是int的?
因为//3 好像第一是1,第二个一个face形状。
2)如果 //1
改成 unsigned int s=1;
是不是没有改变
3)//4 返回 true
关键对于bool 来说是不是只要指向非空内容就应该返回true? | h*******s 发帖数: 8454 | 2
这个不对 p没初始化 改成 int *p = &s;
或者 int s2; int*p = &s2; *p = s;
假设上面改过来了,这里你把p转换成了一个指向一个byte的指针
前面是把那个byte提出来(恰好是1)作为char,并转换为整形,后面那个直接把那个
byte当char显示了,不知道为啥是笑脸。。。按说应该是什么控制字符来着
不是0的东西都是true吧
【在 s*********d 的大作中提到】 : 请教 : int s=1; //1 : int *p; : *p=s ; : char *ps=(char*) p ; //2 : printf("ps is %d ,%c", *ps, *ps); //3 : bool ps1=(bool) *ps ; //4 : 1) : //2的值好像还是1,但是这个1好像还是int的? : 因为//3 好像第一是1,第二个一个face形状。
|
|