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