在此申明,我的C++笔记都是看VC驿站然后自己总结出来的,部分可能会引用VC驿站的内容,若有侵权,请联系我删除,特此申明。在以后的笔记中将不再声明。
指针保存数组最直接的方法:
nt num[100] = {0};
int* p_num[100] = {0};
for(int idx = 0; idx < 100; ++idx)
{
p_num[idx] = &num[idx];
}
缺点:太过于麻烦。
为了避免上面说的情况,C/C++中规定数组名字就是数组的首地址。注意,是数组的首地址,也就是数组的第0个元素的地址,即:
int num[100] = {0};
int* pnum = &num[0];
这里的 num 和 pnum 的值应该是一样的。
C/C++中规定如果指针变量p已经指向数组中的一个元素,则p+1指向同一数组中的下一个元素的地址(而不是将p的值简单+1),p-1同理。
int num[100] = {0};
int* pnum_0 = &num[0];
int* pnum_1 = &num[1];
pnum_0 += 1;
执行以上代码之后,这里面pnum_0的值应该和pnum_1的值是相等的。也就是说,再对指针变量操作,即可操作关联数组的值。不管怎样,指针变量始终是代表地址,而带*的才能表示内容。数组名字不能+或-。