51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

c++指针

|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 | int m,n; m=100; int *pm;//定义一个指针变量 pm=&m;//取地址并传递 cout<<pm<<" "<<*pm;//*间接引用运算符 //pm = 0x28fef8 //*pm 访问指针所指向的变量,即m值100 *pm=300; //间接访问m,改变值 |

|-----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 | int *pm=&n; //*pm定义指针 *pm=&m; //*pm表示间接引用,*pm相当于n //错误,一级指针无法做到,相当于将m的地址赋值给n *pm=m; //将m的值赋值给n pm=&m; //改变pm指针变量的指向,使pm指针指向m的地址 |

|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 | int a[10]={1,2,3,4}; int *p=a;//p起始指向a[0] for(;p<a+10;p++)//p++会使p=a[0]变为p=a[1]... { cout<<*p<<" "; } //1 2 3 4 0 0 0 0 0 0 |

指针访问数组下标法

|-----------------|---------------------------------------------------------------------------------| | 1 2 3 4 | int a[10]={1,2,3,4}; int *p = a; for(int i=0;i<n;i++) cout<<p[i]<<endl; |

指针访问数组指针法

|-----------------|-----------------------------------------------------------------------------------| | 1 2 3 4 | int a[10]={1,2,3,4}; int *p = a; for(int i=0;i<n;i++,p++) cout<<*p<<endl; |

数组的传参 {#数组的传参}

在c++中,当数组作为函数传参时,实参数组给形参数组传递的是指向数组首元素的指针,而不是数组的副本。

即在函数中改变数组元素会对原数组产生影响。

|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | int display(int m[],int n) { for(int i=0;i<n;i++) //不能m++,因为数组名是一个地址,不能给数组赋值运算 cout<<m[i]; for(int i=0;i<n;i++)//改变数组 m[i]=i*3; } int main() { int a[10]={5,6,7}; display(a,10); display(a,10); } //5 6 7 0 0 0 0 0 0 0 //0 3 6 9 12 15 ... // |

指针在数组中的应用 {#指针在数组中的应用}

|---------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | int display(int *m,int n) { for(int i=0;i<n;i++) cout<<*m++;//*m++即*(m++),但是不改变后++的原则,该复合操作符表示先取出m所指向的内存单元中的值,如何将指针m自增加1,指向下一元素。 m=&a[0]; //使m指向a的初始元素 for(int i=0;i<n;i++,m++)//改变数组 *m=i*3; } int main() { int a[10]={5,6,7}; display(a,10); display(a,10); } //5 6 7 0 0 0 0 0 0 0 //0 3 6 9 12 15 ... // |

赞(0)
未经允许不得转载:工具盒子 » c++指针