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

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

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



