#include//定义一个标准的C++库 using namespace std;//定义命名空间
1.第一步实现键盘输入,运用指针完成数组赋值
int arr1[4], arr2[4];
int *parr1, *parr2;
/*
parr1 = &arr1[0]:将指针变量parr1用数组arr1的首地址进行赋值
parr1 < arr1 + 4: 循环条件:parr1只能取到arr1[0]到arr1[3]的地址
parr1++:指针的自增
*/
//数组赋值
for (parr1 = &arr1[0]; parr1 < arr1 + 4; parr1++)
{
cin >> *parr1;
cout << *parr1 << " ";
}
cout << endl;
注意:验证是否能通过指针变量给数组赋值
for (int i = 0; i < 4; i++)
{
cout << arr1[i] << " ";
}
cout << endl;
2.初始化指针变量parr1
parr1 = &arr1[0];
注意:第一步for循环结束后,parr1指向arr[4]的地址,此时出现数组越界,如果想要再次使用parr1时,需要对其进行初始化。 3.将数组arr1中的数据复制给数组arr2
for (parr2 = &arr2[0]; parr2 < arr2 + 4; parr2++)
{
*parr2 = *parr1;
cout << *parr2;
parr1++;
}
学习总结: 作为一名C++初学者,学习指针时。 首先要明确指针与指针变量以及取地址符(&)与指针运算符(*)。 (1)指针:表示地址。 (2)指针变量:表示用来存放地址的变量。 (3)取地址符:用在变量名之前,用来获取该变量的地址。 (4)指针运算符:用在指针变量之前获取该指针变量所指向内存单元的值。 其次运用数组时,要考虑到数组越界,如果下面需要重新用到某一变量时,需对其进行初始化,否则会进行乱码。 如当我完成用指针进行数组克隆时,忽略了数组越界以及初始化(parr1 = &arr1[0];parr1++;),导致代码出现了乱码情况,如下: 
|