6指针
- 指针:变量在内存中的地址,称为指针
- 指针声明的一般形式:数据类型标识符 *变量名 (此时,*为说明符,表示此变量为指针类型)
- *指针运算符 和&取地址运算符 优先级相同 自右向左运算
-
#include<iostream> using namespace std; int main() { int i=100;// 设其地址为4009 int *p=&i;// 此时*为说明符 说明p为指针变量 cout<<p<<endl; //随机给变量i一个地址值 cout<<*p<<endl;//*为指针运算符 求地址中的内容 return 0; }
- 指针与一维数组
-
int a[10] ; int *p; p=&a[0]//指针变量p指向a数据的第一个元素
-
- 指针与二维数组
-
a[i]=*(a+i) a[i][j]=*(a+i)[j] a[i][j]=*(*(a+i)+j) 对于二维数组a[m][n] 第i行第j列 a[i-1][j-1]=*(&a[0][0]+n(i-1)+j-1)
-
- 指针与字符数组
-
#include<iostream> using namespace std; int main() { char a1[30],a2[10],*p1,*p2; p1=a1;p2=a2; gets(a1); gets(a2); while(*p1!='\0')//通过指针变量p1循环到字符不等于\0的字符 p1++; while(*p2!='\0') *p1++=*p2++; *p1='\0'; puts(a1); return 0; }
-
- 指向函数的指针
- 数据类型名*函数(参数列表)
-
#include<iostream> using namespace std; int fun(int i,int j); int main() { int i,j,k; i=10;j=30; int (*pfun)(int i,int j); //函数指针 函数名由指针组成 pfun=fun;//函数名的值等于该函数的地址值 k=(*pfun)(i,j);//求pfun存放地址中的内容 =fun(i,j); cout<<k<<endl; return 0; } int fun(int i,int j) { return (i+j)/2; }

浙公网安备 33010602011771号