当前位置: 首页 > article >正文

关键字:sizeof

1.sizeof

sizeof:确定一种类型,对应在开辟空间的时候的大小;

1.1求内置类型

printf("%d\n",sizeof(char));        //这些学过C语言的基本都没问题

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

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

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

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

1.2证明sizeof是关键字

int a = 10;

printf("%d\n",sizeof(a));   //这三种都可以     

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

printf("%d\n",sizeof a ));//说明sizeof不是函数,sizeof是关键字或操作符

printf("%d\n",sizeof int);//sizeof是一个关键字,他不能直接去取另一个关键字的大小

                                          //不带括号是不能成立的

 1.3求其他类型

数组名只有在两种情况下代表的是整个数组,一个是取地址数组名;另一个是sizeof 单独使用数组;

int *a1 = 20;
int a2[20] = { 20 };
char arr1[20] = { 'a','b' ,'\0' };
char arr2[20] = { 'a','b','\0' };
printf("%d\n", sizeof(a1));    //4
printf("%d\n", sizeof(a2));//80

printf("%d\n", sizeof(arr1));//20
printf("%d\n", strlen(arr2));//2

上面的这段代码;验证了几个事情:

sizeof:确定一种类型对应开辟空间的时候的大小——说人话就是,编译器编译的时候,就直接统计了开辟空间的大小,开了多少空间就是多大;跟是否向其中写了数据没有关系;

strlen:只能用于char、char[]类型,找到\0之前的数据,且里面有多少数据,给用户返回多少值;

char arr[100]="a";       

sizeof(arr);        //返回100;开辟了100个字节空间

strlen(arr);        //返回1;只写了1个数据

如果您想定义字符数组,那么在数组的最后加不加'\0'是无所谓的;

如果您想定义字符串,就无论哪种写法,在字符串的最后加上'\0'

现在的编译器很厉害,你就是不写\0,都会自动给加上;还是用户自己写;防止因为编译器的不同而出错;

char arr1[20] = { 'a','b' ,'\0' };

char arr2[20] = "abc\0";


http://www.kler.cn/news/334670.html

相关文章:

  • 知识图谱入门——3:工具分类与对比(知识建模工具:Protégé、 知识抽取工具:DeepDive、知识存储工具:Neo4j)
  • 安卓WPS Office v18.13.0高级版
  • 28 基于51单片机的两路电压检测(ADC0808)
  • 双11买什么东西比较好?买什么?这份双十一好物清单请查收
  • 【微服务】服务注册与发现、分布式配置管理 - Consul(day5)
  • ElasticSearch备考 -- Search across cluster
  • 【架构】efk日志监控
  • 《浔川社团官方宣布 ——10 月 8 日上线浔川 AI 翻译 v4.0》
  • C++——用类实现输入和输出时间。要求:(1)私有数据成员包括时、分、秒。(2)输入输出功能改为由成员函数实现。(3)在类体内定义成员函数。
  • java计算机毕设课设—坦克大战游戏
  • AI学习指南深度学习篇-学习率衰减的实现机制
  • [241006] Cerebras 挑战英伟达霸主地位,AI 芯片市场再掀波澜!| EndeavourOS Neo 五周年更新版发布
  • mysql设置表的某一个字段每天定时清零
  • 力扣 简单 110.平衡二叉树
  • python配置环境变量
  • Self-Operating Computer:基于PyAutoGui加AI实现无人“驾驶“电脑,让Python带你走近未来世界
  • 如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue
  • C#单元测试(一):用 NUnit 和 .NET Core 进行单元测试
  • 汽车管理系统中使用函数
  • 前端开发在AI时代如何保持核心竞争力