收藏 分享(赏)

sizeof一维数组和二维数组.doc

上传人:hskm5268 文档编号:12342707 上传时间:2021-12-11 格式:DOC 页数:4 大小:52.50KB
下载 相关 举报
sizeof一维数组和二维数组.doc_第1页
第1页 / 共4页
sizeof一维数组和二维数组.doc_第2页
第2页 / 共4页
sizeof一维数组和二维数组.doc_第3页
第3页 / 共4页
sizeof一维数组和二维数组.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、sizeof 一维数组和二维数组1. sizeof 的说明sizeof 在 C 语言里面属于操作符,不属于函数,和变量的+,-属于同样的操作符。sizeof 后面的括号里面,可以放类型名,数组名等内存大小确定的类型,不能计算函数名,可变数组的内存大小等2. sizeof 计算一维数组首先,看如下代码:#includeint main()int a=1,2,3,4;/*打印内存地址*/printf(“0x%x, 0x%x, 0x%x, 0x%xn“,a,/*计算内存大小*/printf(“%d, %d, %d, %dn“,sizeof(a),sizeof(return 0;我们知道,a 代表数组

2、的起始地址,也就是数组 a 的 0 号位元素的内存起始地址,a+0代表指针 a 偏移 0,因此指向的还是数组的起始地址,所以 a=int n=sizeof(a00);printf(“a=0x%x,*a=0x%xn“,a,*a);printf(“a size=%d,*a size=%dn“,sizeof(a),sizeof(*a);printf(“-n“);printf(“a0=0x%x,*(a+0)=0x%xn“,a0,*(a+0);printf(“a0 size=%d,*(a+0)=%dn“,sizeof(a0),sizeof(*(a+0);printf(“-n“);printf(“prin

3、tf(“printf(“-n“);printf(“a1=0x%x,a+1=0x%xn“,a1,a+1);printf(“a1 size=%d,a+1=%dn“,sizeof(a1),sizeof(a+1);printf(“-n“);printf(“printf(“printf(“-n“);printf(“a2=0x%x,*(a+2)=0x%xn“,a2,*(a+2);printf(“a2 size=%d,*(a+2) size=%dn“,sizeof(a2),sizeof(*(a+2);printf(“-n“);printf(“printf(“printf(“-n“);printf(“a10=

4、0x%x,*(*(a+1)+0)=0x%xn“,a10,*(*(a+1)+0);printf(“a10 size=%d,*(*(a+1)+0) size=%dn“,sizeof(a10),sizeof(*(*(a+1)+0);printf(“-n“);return 0;以上代码,包含了用 sizeof 计算各种各样二维数组相关的内存大小,大家不要感到疑惑,读完下面的分析,我们就明白了。a 代表了二维数组的起始地址,这句代码中,sizeof(a)表示整个二维数组的大小,*a 表示*(a+0),所以,*a 表示一维数组1,3,5,7的首地址,因此 sizeof(*a)是 4*sizeof(int)为 16。printf(“a0 size=%d,*(a+0)=%dn“,sizeof(a0),sizeof(*(a+0);a0也就是*(a+0), 和*a 一样,也是指向一维数组1,3,5,7的首地址,因此 a0,*(a+0)用sizeof 计算内存大小,就是 4*sizeof(int)为 16printf(“int b4=1,3,5,7,9;printf(“%d, %d, %d, %dn“,sizeof(a),sizeof(a+1),sizeof(b),sizeof(b+1);return 0;运行结果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报