这可能很简单,但我正在尝试更好地理解指针。假设我有一个结构体:
struct Person{
char Name[20];
char ID[15];
char Address[50];
char Number[15];
};
假设我有一堆这样的结构体存在内存中,一个接一个地存储。
现在我声明了一个指向该结构体的新指针。
struct Person *ptr;
这个指针会从第一个入口开始吗?(也就是第一个“名称”),当我遍历它(ptr ++)时,它会去下一个结构体还是下一个“条目”,比如name--> ID --- >地址?
比如说,我现在在第一个条目,数据是:
Jason Adams
111222333
111 Fake Drive
55555551000
第二个条目是
Matt Johns
111555333
555 Derp lane
1000022434
现在我迭代指针 (ptr++),这个指针会指向第二个结构体(带有Matt Johns的那个)还是会指向Jason Adams的“ID”?
希望这样说清楚了。
sizeof(<pointed-to type>)
。如果您将1添加到指针中(通过ptr++
或ptr + n
),它会隐式地前进“一个指向的元素”。如果您将sizeof(Person)
添加到Person*
中,则会超过一个条目。 - John Calsbeek