cc++中指针与字符数组,指针与数组,数组指针与指针数组之间的关系。

    xiaoxiao2021-03-25  149

    1,指针与字符数组的关系

    char a[ ]="I love C++";

    char *a="I love C++";

    a[ ]是一个数组,在内存中会分配9个字节的地址,我们可以通过sizeof(a)知道。

    数组内容是可以改变的例如:a[ 0]='s';然后运行输出的时候 cout<<a<<endl; 得到s love c++;

    而char *a就不同,它是一个字符指针,a是一个指针变量,存储的是字符串"I love C++"的首地址。

    可能你会说这跟数组的a是一个意思,其实这涉及到指针的作用,以后会明白的。

    既然a是地址,为什么我们使用cout<<a<<endl;时输出的不是地址,而是字符串了。

    这时因为当cout是其自动将char*型指针指向的内存地址中的内容,所以不输出地址而输出字符串,解决的办法是:我们可以添加(void*)或者(int*)等只要不是char*型就行(见程序)。

    转载请注明原文地址: https://ju.6miu.com/read-6597.html

    最新回复(0)