如何把数组的首地址保存在指针中

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:12:25
我想把数组作为参数返回,所以想把数组的首地址保存在指针中返回,但不知道具体如何操作...请各位指教..
我指的是多维数组

比如char a[10]
再定义个指针 char *p;
p=a;
即可 指向它的数组名就ok了`

---------------------------------------------

多少维都是一样的``
在内存中都是按线形排列``可以看成一维的`
直接赋数组名就可以了

数组的名称就是数组的首地址的指针

如int a[20];

你如果直接cout<<*a; 则输出的是a[0]的值,如果cout<<*(a+1)则输出a[1]的值,依此类推

按照你的要求,你可以定义一个 int *p;然后p=a;这样就把数组a[20]的首地址赋给了整形的指针p了;

-------------------------------------------

多维数组一样的,多维数组在内存中是按行优先的顺序存储的,以二位数组A[4][4]为例即在一串连续的内存空间中,存储的分别是
A[0][0] A[0][1] A[0][2] A[0][3] A[1][0]……
如果你写cout<<*(A+4)输出的就会是A[1][0]的值
所以,你同样可以像上面那样,直接定义一个int型的指针然后把数组名赋给他,这样int型的指针指向的就是二维数组的第一行第一列的元素,也就是二维数组的首地址;

一维数组直接把名称作为参数,在函数中就能直接操作。