我有一个基本问题,就像 C 说的 char 对象将是 1 个字节,所以如果是 unsigned char,范围是从 0 到 255
但如果是 char 指针,1 字节变量如何存储超过 255 个?
就像在下面的程序中一样,我发现字符指针 p 存储的值是 2358855 > 255 ??
(我知道值 2358855 是地址,但是 1 字节对象如何存储超过 255)?
地址表示对象所在的内存位置。它不同于它所指向的实际类型,并且不必是相同的大小。
如果指向 a 的指针char只能容纳 256 个值,那么它就没有多大用处。这意味着只有 256 个字节的字符可以被寻址。
指向类型的指针不受类型本身的大小限制。
简单证明:
if(sizeof(char *)==sizeof(char))
{
printf("I\'ll never get anything done like this.\n");
}
else
{
printf("Life is good!\n");
}