关键字(三)sizeof和bool


在这里插入图片描述

一.最冤枉的关键字—sizeof

在这里插入图片描述

前面我们说过定义变量是需要空间的(声明不需要),同时你需要有类型像int,char…这些不同的类型会在内存中开辟不同大小的空间,而sizeof就可以求出该类型在内存里开辟空间的大小(单位是字节)

在这里插入图片描述

为什么说size是最冤枉的,因为sizeof是关键词或者操作符,不是函数

注意看sizeof的三种用法
在这里插入图片描述

从上可以看出在求变量所占内存大小时可以不带括号(从中也可以看出sizeof不是函数),但在求类型所占空间大小时必须带上括号

这里插入一个小问题:为什么一定要有类型呢?

在这里插入图片描述

总结一下,类型的出现就是为了让我们合理的使用空间

二.“简单”的布尔类型—_Bool

在这里插入图片描述

为什么布尔类型“简单”呢,因为只有两种值1和0用来判断真假的,一般用0表示假,1表示真(在布尔类型里)

布尔类型的使用

在定义变量时用这个bool

在这里插入图片描述在这里插入图片描述

在定义函数时用这个_Bool

在这里插入图片描述

————————分割一下—————————

我们接下来我们转到定义,看看布尔类型是什么

在这里插入图片描述在这里插入图片描述

这里其实可以看到bool其实是一个宏定义,另外false,true都是宏定义,这是程序员在c90标准下使用c99标准

这里引深一下,像是int类型是4个字节,char类型是1个字节,那么布尔类型是多少字节呢?

在这里插入图片描述

可以看到在这里布尔类型是占一个字节的,也就是x的大小是一个字节

在这里插入图片描述

总结
1.c89,c90没有布尔类型,到c99才引入
2.我们目前写代码一般使用c90标准,所以需要加上头文件stdbool.h

接下来还有一套布尔类型

在这里插入图片描述

全是大写,在这里(vs2019)这种写法是不被认可的,但这其实是微软自定义的布尔类型,大小是4个字节,只有在微软的软件上能使用,所以强烈建议不要这样写,可移植性很差

在这里插入图片描述

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
计算机基础程序设计复习题 一、单项选择题 1. 计算机的基本组成部分包括中央处理器、存储器、输出设备和( ) A. 键盘 B. 鼠标 C. 显示器 D. 输入设备 2. 下列属于计算机病毒特征的是( ) A. 模糊性 B. 高速性 C. 传染性 D. 危急性 3. C#程序的( )方法被称为程序的大门,应用程序从这里开始运行。 A. Main() B. Begin() C. Start() D. main() 4. 可用作C#程序用户标识符的一组标识符是( ) A. void define +WORD B. a3_b3_345YN C. for –abe Case D. 2A.do sizeof 5. 下列代码输出的结果是( ) int i=0;i=++i+8; Console.WriteLine(i++); A. 8 B. 9 C. 10 D. 11 6. 以下类型中,不属于值类型的是( ) A. 数值类型 B. 布尔类型 C.字符类型 D. 类类型 7. 设"int a=12;",则执行完语句"a+=a*a;"后,a的值是( ) A. 12 B. 144 C. 156 D. 288 8. 下列关于switch的语法结构的描述不正确的是( ) A.switch条件判断接收int、char、string种类型 B.switch的case块,必须要加上break子句 C.switch的case块,可以没有break D.switch的default块,在条件都不满足的情况下执行 9. 有定义语句: int[,]a=new int[5,6]; 则下列正确的数组元素的引用是( ) A. a(3,4) B. a(3)(4) C. a[3][4] D. a[3,4] 10. 在C#语言的循环结构中,首先执行一次,然后再判断条件的循环结构是( ) A. while循环 B. do…while循环 C. for循环 D. foreach循环 11. 为了避免嵌套的条件分支语句if…else…的二义性,C语言规定:C程序中的else总是与( )组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D. 同一行上的if 12. 让控件不可见的属性是( ) A. Cursor B. Enabled C. Dock D. Visible 13. DateTime类的( )属性可以获得系统的当前日期和时间。 A. Now B. Today C. Tomorrow D. ThisTime 14. 以下语句中,不正确的有( ) A. int[] a; B. int a[]=new int[2,3]; C. int[]a={1,3}; D. int a=new int[]{1,3}; 15.文本框控件的( )属性用来设置其是否是只读的。 A. ReadOnly B. Locked C. Lock D. Style 16. 在ADO.NET中,( )用来从数据源中获取只读的数据。 A. DataSet B. Command C. DataReader D. DataAdapter 17. 软件生命周期中花费时间最多的阶段是( ) A. 软件定义 B. 软件开发 C. 软件测试 D. 软件运行维护 18. 在ADO.NET中,下列关于DataSet对象的说法有误的是( ) A. 可以向DataSet的表集合中添加新表 B. DataSet中的数据发生改变之后,它会自动更新数据库中对应的数据 C. DataSet就好像是内存中的一个"临时数据库" D. 对DataSet中的数据可以执行读写操作 19. 程序流程图、N-S图和PAD图是( )使用的表达工具。 A. 设计阶段的概要设计 B. 设计阶段的详细设计 C. 编码阶段 D. 测试阶段 20. 在软件编码阶段,下列做法不宜采用的是( ) A. 使用标准的控制结构 B. 尽可能使用库函数 C. 程序编写先考虑清晰性 D. 尽量使用GOTO语句 21. 下列选项中内聚性最强的是( ) A. 顺序内聚 B. 过程内聚 C. 逻辑内聚 D. 功能内聚 22. 结构化设计方法定义了一些不同的映射,利用这些映射可以实现( ) A. 从数据结构导出程序结构 B. 从模块结构导出程序结构 C. 从模块结构导出数据结构 D. 从数据流图导出软件结构图 23. 在C#中,若要将磁盘中的文件删除,应使用File类的( ) A. Copy B. Delete C. Move D. Create 24. 在C#中,基本的文件操作是由( )命名空间提供的类来实现的。 A. System.Data B. System.Configuration C. System.Collections
目录 1. 介绍 1 1.1 Hello, world 1 1.2 类型 2 1.2.1 预定义类型 3 1.2.2 转换 5 1.2.3 数组类型 6 1.2.4 类型系统一致 7 1.3 变量和参数 8 1.4 自动内存管理 11 1.5 表达式 13 1.6 声明 14 1.7 类 17 1.7.1 常数 19 1.7.2 域 19 1.7.3 方法 20 1.7.4 属性 21 1.7.5 事件 22 1.7.6 操作符 23 1.7.7 索引 24 1.7.8 实例构造函数 25 1.7.9 析构函数 26 1.7.10 静态构造函数 26 1.7.11 继承 27 1.8 结构 28 1.9 接口 29 1.10 代表 30 1.11 联合 31 1.12 名称空间和集合 31 1.13 版本 33 1.14 特征 35 2. 语法结构 37 2.1 翻译的阶段 37 2.2 文法符号 37 2.3 预处理 38 2.3.1 预处理声明 38 2.3.2 #if, #elif, #else, #endif 39 2.3.3 预处理控制行 40 2.3.4 #line 41 2.3.5 预处理标识符 41 2.3.6 预处理表达式 41 2.3.7 与空白交互作用 42 2.4 语法分析 43 2.4.1 输入 43 2.4.2 输入字符 43 2.4.3 行结束符 43 2.4.4 注释 43 2.4.5 空白 44 2.4.6 标记 45 2.5 句法分析 45 2.5.1 标识符 45 2.5.2 关键字 46 2.5.3 数据符号 46 2.5.4 操作符和标点 51 2.5.5 Unicode 字符转意字符序列 51 3. 基本概念 53 3.1 声明 53 3.2 成员 55 3.2.1 名称空间成员 55 3.2.2 结构成员 55 3.2.3 枚举成员 55 3.2.4 类成员 56 3.2.5 接口成员 56 3.2.6 数组成员 56 3.2.7 代表成员 56 3.3 成员访问 56 3.3.1 声明可访问性 56 3.3.2 可访问性域 57 3.3.3 保护的访问 59 3.3.4 可访问性约束 60 3.4 签名和重载 60 3.5 范围 61 3.5.1 名称隐藏 63 3.6 名称空间或类型名称 65 3.6.1 合格的名称 66 4. 类型 67 4.1 数值类型 67 4.1.1 默认构造函数 68 4.1.2 结构类型 69 4.1.3 简单类型 69 4.1.4 整数类型 70 4.1.5 浮点类型 71 4.1.6 十进制类型 72 4.1.7 布尔类型 72 4.1.8 枚举类型 72 4.2 引用类型 72 4.2.1 类类型 73 4.2.2 对象类型 73 4.2.3 字符串类型 73 4.2.4 接口类型 74 4.2.5 数组类型 74 4.2.6 代表类型 74 4.3 包装和解包 74 4.3.1 包装转换 74 4.3.2 解包转换 75 5. 变量 77 5.1 变量类型 77 5.1.1 静态变量 77 5.1.2 实例变量 77 5.1.3 数组元素 78 5.1.4 数值参数 78 5.1.5 引用参数 78 5.1.6 输出参数 78 5.1.7 局部变量 79 5.2 默认值 79 5.3 明确赋值 79 5.3.1 初始赋值变量 81 5.3.2 非初始赋值变量 82 5.4 变量引用 82 6. 转换 83 6.1 隐式转换 83 6.1.1 同一性转换 83 6.1.2 隐式数值转换 83 6.1.3 隐式枚举转换 84 6.1.4 隐式引用转换 84 6.1.5 转换 84 6.1.6 隐式常数表达式转换 84 6.1.7 用户自定义隐式转换 85 6.2 显式转换 85 6.2.1 显式数值转换 85 6.2.2 显式枚举类型转换 86 6.2.3 显式引用类型转换 86 6.2.4 解包转换 87 6.2.5 用户自定义显式转换 87 6.3 标准转换 87 6.3.1 标准隐式转换 87 6.3.2 标准显式转换 88 6.4 用户定义转换 88 6.4.1 允许的用户自定义转换 88 6.4.2 用户自定义转换的取值 88 6.4.3 用户自定义隐式转换 89 6.4.4 用户自定义显式类型转换 89 7. 表达式 91 7.1 表达式分类 91 7.1.1 表达式的数值 92 7.2 操作符 92 7.2.1 操作符优先级和结合顺序 92 7.2.2 操作符重载 93 7.2.3 一元操作符重载分析 94 7.2.4 二元操作符重载分析 94 7.2.5 候选用户定义操作符 95 7.2.6 数字升级 95 7.3 成员查询 9

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咸蛋挞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值