1.指针基本概念理解
对于指针我先说一下我的基本理解:
//定义指针变量
char str1[30]="123";
char*p=str1//指向str1的首地址
使用注意:指针必须指向一个变量之后,才能对其指向的对象进行操作。
2.用指针操作储存单元(一维数组)
//用指针操作一维数组
double b[20];
double* p2;
p2 = b;//指向b数组的首地址
*(p2 + j) = b[j];
for (int i = 0; i <= 20; i++) {//用指针遍历该数组
cout << *p2;
p2++;
}
3.指针中的重要运算
1.取地址运算符:&
int a;
int *p;
p=&a;//&为取地址运算符
//直接访问数据
a=10;
cout<<a<<endl;
//间接访问
*p=10;
cout<<(*p)<<endl;//用指针访问内容单元
2.算术运算
p为指针变量。
p++||p--均指向下一个数据位置或者说指向上一个数据位置。
3.关系运算
主要是指针位置的前后的一个关系。
4.通过指针进行的一些操作
(1).求字符串长度
#include <iostream>
using namespace std;
int main()
{
char str[100];
char* p;
int n=0;
p = str;
cin >> p;
n = 0;
while (*p = '\0') {
n++;
p++;
}
cout << n << endl;
}
5.操作二维数组
b=&b[0];
*b=b[0];
*(b+i)=b[i];//一维行里的取值
//记录行首元素地址
int b[10][10];
b[i]=&b[i][0];
b[i]+j=&b[i][j];
*b[i]=b[i][0];
*(b[i]+j)=b[i][j];//取该位置内容
//引用二维数组首地址进行取值
int b[10][10];
int(*p)[10];
p=b;
*(*(p+i)+j)=b[i][j];
6.指针作为参数
7.指针传参
剩余内容持续更新...