先看代码在看说明和和结果会让人更多的更加纯粹的思考,同时减少多余词汇造成的负担,这里只通过int类型为例试验,其他类型雷同

注意在使用sizeof时与你系统是32位或者64位有关系,同时和你环境中编译器有关

一、代码#include

int main(void){

int a = 1;

int b = 10223372036854775807;

printf("%d\n",sizeof(int));

printf("%d\n",sizeof(a));

printf("%d\n",sizeof(b));

return 0;

}

1. 2个整型变量a和b值的长度相差很大,可是通过sizeof打印的结果是相同的,那换成其他类型的变量(char等)是否也是这个现象?大家可以自己测试

2. 通过sizeof处理数据类型和此类型的变量,然后打印所得结果也是相同的,这个又是为什么?问题肯定出在sizeof的语句结构上,大家快暂停去查查sizeof在c语言中的语法

二、代码执行结果

对编译执行结果和结合上述抛出的2个问题思考思考.....

三、问题解释

int i;

sizeof有三种语句形式

1. sizeof(object);   //sizeof(对象); 这里的对象可以是变量也可以是表达式 sizeof(i);

2. sizeof(type_name);   //sizeof(类型); sizeof(int);

3. sizeof object;  //sizeof 对象 ; sizeof i;

说明:实际上sizeof计算一个对象(变量或者表达式结果)的大小也是转换成对应类型的计算。所以统一类型不通变量其sizeof值都是一致的,和变量赋的值大小没关系。

四、延伸

1. 指针#include

int main(void){

int a = 1;

int * p = &a;

printf("%d\n",sizeof(int));

printf("%d\n",sizeof(a));

printf("%d\n",sizeof(p));

char * pc="abc";

printf("%d\n",sizeof(pc));

int * pi;

printf("%d\n",sizeof(pi));

char **ppc=&pc;

printf("%d\n",sizeof(ppc));

void (*pf)();    //指针函数

printf("%d\n",sizeof(pf));

return 0;

}

结果:

2.数组

通过sizeof有助于我们更好的深入了解数组#include

int main(void){

char a1[]={"qwqwqw"};

int a2[3];

printf("%d\n",sizeof(a1)); //结果7

printf("%d\n",sizeof(a2)); //结果12

return 0;

}

.....

c语言sizeof计算int字节数,c语言sizeof获取数据类型长度相关推荐

  1. pch在c语言中占内存字节数,c语言期末测试题(附答案)

    ** 课程代码:A100002座位号: <计算机技术基础(C语言)>试卷A 姓名: 学号: 专业: 学院: 班级: 20 年月日 第一部分选择题(共 30 分) 一.单项选择题(本大题共 ...

  2. C 语言实例 - 计算 int, float, double 和 char 字节大小

    C 语言实例 - 计算 int, float, double 和 char 字节大小C 语言实例 C 语言实例使用 sizeof 操作符计算int, float, double 和 char四种变量字 ...

  3. c语言数组所含字节数,(C语言)数组所占字节怎么算?

    在C语言中,可以使用sizeof操作符来计算数组所占字节.sizeof操作符是专门用于检测类型或变量或数组在内存中所占有的空间(字节数)的,用它可以直接检测出数组在内存占有的字节数. C语言中有一个专 ...

  4. ARM不同位数系统int字节数区别

    32位和64位系统区别及int字节数 一)64位系统和32位有什么区别? 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2.64位CPU一次可提取64位 ...

  5. 32位和64位系统区别及int字节数

    (一)64位系统和32位有什么区别?http://zhidao.baidu.com/question/100772591.html 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而 ...

  6. c语言中什么运算符可以求出数据字节数,C语言的数据类型及其运算符

    一.数据类型 (一).变量与常量 1.变量 (1).定义:其值在其作用域内可以改变的量称为变量.一个变量应该有一个名字,在内存中占据一一定的存储空间.变量在使用前必须要定义,每个变量都有自己的地址.变 ...

  7. 语言axff所占字节数_【每日一答】(74)数组名v.s.指针变量,C语言其实很简单形象比喻为“是一个朋友圈的”...

    下图选自<C语言其实很简单>第8章: 问:请问张老师!书上第227页一句话:指针变量a本身的地址(a所在内存字节编号)是数组的地址,数值上与元素a[0]的地址相等! 这句话是什么意思,我看 ...

  8. pch在c语言中占内存字节数,2018年9月计算机二级C语言考试章节习题及答案(6).docx...

    2018年9月计算机二级C语言考试章节习题及答案(6) 第2章 C程序设计的初步知识 2.3 整型数据 1[单选题] 用8位无符号二进制数能表示的最大十进制数为( ) A.127 B.128 C.25 ...

  9. c语言英文字母占用字节数,字符型变量占用字节数 c语言里字符型数据占多少字节...

    一个字符型变量所占内存的字节数是一个字符型变量所占内存的字节数是 1个字节. 字符与字符型变量有什么区别,都占几个字节 (一)"字节"的定义 字节(Byte)是一种计量单位,表示数 ...

最新文章

  1. 七、Java编码字符集和转义符介绍
  2. 别让Vue3.0的谣言害了你!
  3. ubuntu用户目录安装pip(无root权限)
  4. Github发现优秀的开源项目
  5. LAMP使开放源代码软件安全性提高
  6. 基于php046学校固定资产管理系统
  7. linux UART(RS232/485)驱动实验
  8. c++内存分区、创建变量开辟内存
  9. 梅科尔工作室--梁嘉莹-鸿蒙笔记3
  10. 解决win10 win11登陆微软提示“哎哟出错了”登陆不了问题
  11. Rosalind Java| Computing GC Content
  12. DSS 部署环境需求清单
  13. 9.16 内存、外存与外设
  14. 雷诺手表怎么看型号?rarone型号查询的方法
  15. 2022.2.20考研出分最后一夜
  16. 2022大湾区杯奥港金融数学建模竞赛思路及代码
  17. Maven系列第5篇:私服详解
  18. onethink中修改ucenter用户的密码
  19. 不同Vlan之间的PC相互通信(二)
  20. 微软 win2003停止服务器,Windows Server 2003支持终止:定制补丁赌注有多大?

热门文章

  1. 禁用所有显卡快捷键(Radeon Software)
  2. 海龟画图 python太阳花_只要十分钟,Python绘图神器Turtle了解一下?
  3. 李书福为何要亲自挂帅造手机?
  4. 针对“扫雷”游戏,完成详细逆向复现报告
  5. 台积电不会断供 华为新一代智能手机芯片麒麟985不受影响
  6. csstable跨列居中_HTML表格跨行、跨列操作(rowspan、colspan)
  7. 嵌入式最全的C和C++面试题
  8. iphone如何查看dns延迟_苹果手机网速慢怎么办 iphone手机配置DNS提升网速方法
  9. IDEA快捷键定位编译错误
  10. [NOI2018] 归程 可持久化并查集