C++ 数组指针下标的理解【个人学习笔记用】

您所在的位置:网站首页 字符类型的指针怎么表示 C++ 数组指针下标的理解【个人学习笔记用】

C++ 数组指针下标的理解【个人学习笔记用】

2024-07-15 07:40| 来源: 网络整理| 查看: 265

一、C++中传递参数的三种方法

1. 直接按值传递 形如:

int fun1(int a){ printf(a); }

该方法会在调用函数时把传入的参数copy一份后在函数中进行操作,不会影响到原来的参数。 2. 指针(地址)传递 形如:

int fun1(int *a){ printf(*a); }

将参数的地址(指针)传进来,函数的操作会直接影响到原参数。函数内部使用时候需要取值操作,如 *a 3.引用传递 形如:

int fun1(int &a){ printf(a); }

这是c++特有的方式,很方便,能直接影响原参数的同时,在函数能可以直接用a就行。

另外附上一个对c++函数的参数传递写的比较好的博文,尤其是对引用参数的理解 https://blog.csdn.net/qq_34170700/article/details/104389168

二、数组指针,数组指针下标

形如int a[ ]={1,2,3,4}的数组,&a后取的地址为数组中首元素的地址。 可以先看下面的代码,直观理解如下:

int a[10],*pa; //先进行定义,pa是指针变量名,通俗讲就是指针 pa=&a[0]; //等价于 pa=a; //这意味着数组名a也是数组的首地址 //当然也可以连续赋值 int *pa=&a[0]; int *pa=a; //等效形式,以为定义的是int型的数组a,所以对pa+1,或换句话说对指针加一等价于当前地址顺序往下偏移4个字节,正好是下个数组元素,因此很多枚举enumeration都是对指针加一来遍历元素 *pa==a[0] //pa+1是指针运算 *(pa+1)==a[1] *(pa+i)==a[i] 最最重要的是这四者是等价的,本质上是一模一样的 a[i]==pa[i]==*(pa+1)==*(a+i)

附一个小实验:

#include #include using namespace std; int main(){ int a[]={1,2,3}; int *pa=a; cout


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3