C中指向数组的指针
今天做了LeetCode的两数之和的这道题,注意到了C中的解题方法中有指向数组的指针的应用,下面记录一下。
数组名指向数组中第一个元素的地址,利用数组名可以有两种方式去得到数组中的值,
1、用指针的偏移去得到数组各元素的对应地址,从而去得到数组元素的值,如:*(p + 1)、*(p + 2)。
2、用数组名加索引的方式得到数组中元素的值,如p[1]、p[2]。
1 int main() 2 { 3 int nums[4] = { 1,2,3,4 }; 4 int *p = nums; 5 6 cout << " *(p + 0) " << *p << endl; 7 cout << " *(p + 1) " << *(p + 1) << endl; 8 cout << " p[2] " << p[2] << endl; 9 cout << " p[3] " << p[3] << endl; 10 11 return 0; 12 }
下面是运行结果
*(p + 0) 1 *(p + 1) 2 p[2] 3 p[3] 4
浙公网安备 33010602011771号