C/C++ 知识点:指针与数组名区别

文章讨论了指针与数组名在C++中的不同,指针是一个变量存储地址,而数组名代表数组首元素地址且不可修改。当数组名作为函数参数时,它实际上等同于传递数组的第一个元素的地址。示例代码展示了在函数中使用数组名时,sizeof运算符返回的是指针的大小,而非数组的实际长度。

一、指针与数组名区别

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,说明此时的数组名是一个普通指针。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值