【发布时间】:2020-01-10 03:45:31
【问题描述】:
#include <stdio.h>
int main()
{
int a = -1;
char *p = &a;
printf("%x, %x",*p, *(p+1));
return 0;
}
output is = ffffffff,ffffffff
我知道有符号整数表示为 ffffffff。
* 预期结果应该只打印一个字符,因为它是 char *
*(p+1) 是怎样的 ffffffff ?
有什么区别
char *p = &a;
和
char *p;
p = &a;
【问题讨论】:
-
你能解释一下你想要达到的目标吗?
-
我正在尝试理解带符号数字的指针?
-
@rafix07,我一发布就删除了我的评论,因为我错过了 OP 使用字符指针指向
int的事实。 -
注意
char *p = &a;和char *p; p = &a;的效果是一样的。 -
它的 char * 所以它应该只打印 1 个字节,即 ff ?