C++中数组指针

Posted

tags:

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

C++计算数组可以使用下面的方式:

template <class T>

int getArrayLen(T& array)

{

return (sizeof(array) / sizeof(array[0]));

}

但是对于C++,输入的数组名字会退化为指针

因此如果不用模板,将不会得到正确的结果

并且,只有在数组形式下使用数组的名字,和sizeof函数才可以获得数组的长度

即假如定义数组 char Array[] = {‘1‘,‘2‘,‘3‘};是可以用sizeof计算的

即:int len = sizeof(Array)/sizeof(Array[0]);

对于malloc的内存,无法通过sizeof直接获取到空间的大小

 

对于特殊的情况,假如是字符数组的话,可以通过strlen函数获得字符串的长度,

char strc[] = "123456";

char*pstr = strc;

printf("%d,%d,%d",sizeof(strc),sizeof(pstr),strlen(pstr));

对于字符串的话,由于在字符串的末尾会加一个 ‘\0‘ 字符所以在求取字符串长度时会多一个。

输出:7,4,6

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

C++数组,指针,引用以及三者的复合类型

C++中数组指针

带有空指针的 2D 指针数组 c++

在 C++ 中使用指针的数组:访问返回的数组时出现分段错误

无法分配给 C++ 中的指针数组

C++二维数组(指针)做参数