基础C/C++ 数组与指针

Posted tinaluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础C/C++ 数组与指针相关的知识,希望对你有一定的参考价值。

数组

数组名

数组是内存连续的,数组名代表数组首地址。

技术图片

代码如下:

int a[]=2,3,4,5,12,33;

数组名a表示当前数组的首地址,但是a[0]就不是地址,这一点很不同。

对于地址,可以使用+号进行运算,比如a+2,表示地址向前偏移两个位置,即等价于&a[2],因此,对于数组遍历,有两种方式

第一种:使用常规的a[0],a[1],a[2]...进行遍历

第二种:使用地址进行遍历,代码如下:

int a[]=2,3,4,5,12,33;
for(int i=0;i<6;i++)

    cout<<*(a+i)<<endl;

采用地址运算和后续的指针操作有关联,加强敏感性。

指针

指针和一维数组的操作

前面记录着,数组名代表一个数组的首地址,因此,可以将数组名赋值给一个指针,代码如下:

int a[]=2,3,4,5,12,33;
int *p=a;

int *p:表示一个指向整型数的指针,虽然a代表数组首地址,但是它也相当于&a[0],即a[0]的地址,其指向的还是一个整型数,因此,两者可以赋值

前面,我们也可以看出,地址是可以进行运算的,因此,指针p也可以进行运算,代码如下:

int main()
    int a[]=2,3,4,5,12,33;
    int *p=a;
    for(int i=0;i<6;i++)
        cout<<*(p+i)<<endl;
    

指针和字符串数组

字符串数组和前面的整型数组相同,也是一个数组,只是数组内容是字符,因此可以类比。

char string[]="hello world";
char *p=string;

字符串指针p实际存放的是字符串string的首地址,等效于&string[0]。

 

以上是关于基础C/C++ 数组与指针的主要内容,如果未能解决你的问题,请参考以下文章

C/C++1C基础:数据类型,常量变量,输入输出,运算符,/if,switch,循环,数组,指针

图解多级指针与“多维”数组

一文搞懂数组指针和指针数组C/C++面试必备

一文搞懂数组指针和指针数组C/C++面试必备

java基础

C/C++目录