【发布时间】:2010-04-09 07:17:26
【问题描述】:
我有两个指针,
char *str1;
int *str2;
如果我查看两个指针的大小,让我们假设
str1=4 bytes
str2=4 bytes
str1++ 会增加 1 个字节,但如果 str2++ 会增加 4 个字节。
这背后的概念是什么?
【问题讨论】:
-
如果你想知道指针的“步长”,你想做sizeof(*p),而不是sizeof(p)。
-
好吧,实际上在我的回答中,我告诉了你背后的整个概念,你已经接受了最基本的答案...... xD
-
char 占用内存位置的 1 个字节,因此 ptrchar ++ 将向前移动 1 个内存。而整数在内存空间中占用 4 个字节。所以下一个 ptrinteger ++ 将移动 4 个字节。同样,假设 float 占用 8 个字节,所以 floatptr++ 会将 float ptr 移动到 8 个字节。