int main() {
char ch = 'A';
int i = 99;
double x = 66.6;
char *p = &ch;
int *q = &i;
double *r = &x;
printf("%d %d %d", sizeof(p), sizeof(q), sizeof(r)); //4 4 4
while (true){}
}
一个变量地址只用第一个字节地址表示,虽然指针指向变量的第一个字节,但是变量本身的数据类型就能确定这个变量占多少个字节了, p q r他们的长度都是4,为啥只存放地变量第一个字节的地址,因为变量第一个字节的地址需要用长度为4的字节去表示。在强调一下,是变量第一个字节的地址占4个字节,所以p q r 的长度都是4.