一维数组数组名、首元素地址以及二维数组首元素地址,第i行元素地址,元素地址等等的区别(超详细)

本文详细讲解了一维和二维数组的内存结构、sizeof和strlen函数应用,以及指针和地址概念,特别关注数组名、首元素地址与实际元素地址的区别。涵盖了字符型数组和整型数组实例,以及复杂二维数组的存储理解。

1、在正式介绍知识点之前,我们应该明确一些基本知识。

(1)一般情况下数组名都是代表首元素的地址,除了以下两种情况:

        <1>sizeof(数组名) //注意:()里仅有数组名,不能有其它的东西

        <2>&数组名

(2)sizeof()函数的作用

        sizeof()计算的是对象所占内存的大小,单位为字节

(3)strlen()函数的功能

        strlen()计算从起始地址开始往后数,直到遇到'\0'才停止,并返回从开始到'\0'之间有多少个元素,不包括'\0'。

(4)指针变量和地址(指针)占的内存大小

        指针变量和地址在32位环节下占4个字节,在64位环境下占八个字节

(5)各类型数据所占字节数

        char       unsigned char        1个字节

        short      unsigned short       2个字节

        int           unsigned int       long float   4个字节

        double     long double          8个字节

接下来再继续看正式内容。

2、一维整形数组

首先定义一个整形数组:int a[ ]={1,2,3,4};

我们来分析一下这些符号代表什么以及语句输出什么:

(1)a                 //单独存在的一维数组名为首元素地址

        sizeof(a)        //sizeof(数组名),这时a表示整个整形数组的地址,计算的是整个数组所占内存的字节数

        printf(“%d\n”,sizeof(a)); //打印的是整个数组所占字节数,则为4*4=16个字节

(2)a+i          //整形数组中第i个元素的地址,i=0时,就是a,也就是首元素的地址

  &nb

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值