一、指针与数组名区别
1.1、指针与数组名区别
指针与数组名区别如下:
| 指针 | 数组名 | |
|---|---|---|
| 概念 | 是一个变量,存储的数据是地址 | 代表的是该数组最开始的一个元素的地址 |
| sizeof | 指针变量的大小 | 计算数组占用的内存大小,通过sizeof(数组名)/sizeof(数组名[0])计算数组长度 |
| 常性 | 可以通过指针修改指向的变量,也可以修改保存的地址 | 数组名是一个常量,不允许修改 |
1.2、数组名作为函数形参
数组名作为函数形参时,沦为一个普通的指针,如下:
#include <iostream>
using namespace std;
void display(int num[], int len)
{
cout << "size = " << sizeof(num) << endl;;
for (int index = 0; index < len; index ++) {
cout << num[index];
}
}
int main()
{
int num[5] = {1, 2, 3, 4, 5};
display(num, 5);
return 0;
}
输出结果:
size = 4
12345
Process returned 0 (0x0) execution time : 0.016 s
Press any key to continue.
从输出结果可以看出来,sizeof()的结果是4,说明此时的数组名是一个普通指针。
文章讨论了指针与数组名在C++中的不同,指针是一个变量存储地址,而数组名代表数组首元素地址且不可修改。当数组名作为函数参数时,它实际上等同于传递数组的第一个元素的地址。示例代码展示了在函数中使用数组名时,sizeof运算符返回的是指针的大小,而非数组的实际长度。
1425

被折叠的 条评论
为什么被折叠?



