随笔分类 -  C语言程序设计笔记

摘要:经常有这样的情况:数组中只有相对较少的元素需要进行显式的初始化,而其他元素可以进行默认赋值。 int a[15] = {0,0,29,0,0,0,0,0,0,7,0,0,0,0,48}; 我们希望数组元素2为29,元素9为7,元素14为48,而其他元素为0.对于大数组,如果使用这种方式赋值,将是冗长 阅读全文
posted @ 2021-04-26 20:15 Sai佐为 阅读(76) 评论(0) 推荐(0)
摘要:数组初始化式就是用大括号括起来用逗号分隔 数组不能完全为空 初始化式的长度确定数组大小 {}确定[] 像其他变量一样,数组也可以在声明时获得一个初始值。但是,数组初始化需要有些技巧。 数组初始化式最常见的格式是一个用大括号括起来的常量表达式列表,常量表达式之间用逗号进行分隔: int a[10] = 阅读全文
posted @ 2021-04-26 20:09 Sai佐为 阅读(609) 评论(0) 推荐(0)
摘要:a[i]中的 a是数组名, i 是整数值 , [i]对数组a取下标 或 进行索引 , a[0]数组元素 T类型 数组和for循环结合使用 scanf函数读取a[0] 需用& a[0]数组从下标0开始 但是a[10]这个元素并不存在 数组下标可以是表达式,表达式可以有副作用 下标尽量不要有副作用就能避 阅读全文
posted @ 2021-04-26 08:59 Sai佐为 阅读(867) 评论(0) 推荐(0)
摘要:数组是含有多个数据值的数据结构,并且每个数据值具有相同的数据类型。这些数据值称为元素,可以根据元素在数组中所处的位置把他们一个个地选出来。 最简单的数组类型就是一维数组,一维数组中的元素一个接一个地编排在单独一行(一列)内。这里可以假设有一个名为a的一维数组: 为了声明数组,需要指明数组元素的类型和 阅读全文
posted @ 2021-04-24 07:07 Sai佐为 阅读(157) 评论(0) 推荐(0)
摘要:sizeof 运算符允许程序存储指定类型值所需空间的大小。表达式【sizeof表达式】sizeof(类型名)的值是一个无符号整数,代表存储属于类型名的值所需要的字节数。表达式sizeof(char)的值始终为1,但是对其他类型计算出的值可能会有所不同,在32位的机器上,表达式sizeof(int)的 阅读全文
posted @ 2021-04-24 05:41 Sai佐为 阅读(449) 评论(0) 推荐(0)
摘要:类型定义使编写可移植程序的一种重要工具。程序从一台计算机移动到另一台计算机可能引发的问题之一就是不同计算机上的类型取值范围可能不同。如果 i 是int 类型的变量,那么赋值语句 i = 100000; 在使用32位整数的机器上是没问题的,但是在使用16位整数的机器上就会出错。 可移植性技巧 为了更大 阅读全文
posted @ 2021-04-20 06:14 Sai佐为 阅读(268) 评论(0) 推荐(0)
摘要:更容易理解 更容易修改 类型定义使程序更加易于理解(假定程序员是仔细选择了有意义的类型名)。例如假设变量cash_in和变量cash_out将用于存储美元数量。把Dollars声明成 typedef float Dollars; 并且随后写出 Dollars cash_in, cash_out; 这 阅读全文
posted @ 2021-04-20 05:21 Sai佐为 阅读(76) 评论(0) 推荐(0)
摘要:5.2节中,我们使用#define指令创建了一个宏,可以用来定义布尔型数据: #define BOOL int 但是,一个更好的设置布尔类型的方法是利用所谓的类型定义的特性: typedef int Bool; 注意,所定义的类型的名字放在最后。还要注意,我们使用首字母大写的单词Bool。将类型名的 阅读全文
posted @ 2021-04-20 05:15 Sai佐为 阅读(88) 评论(0) 推荐(0)
摘要:虽然C语言的隐式转换使用起来非常方便,但我们有些时候还需要从更大程度上控制类型转换。基于这种原因,C语言提供了强制类型转换。强制类型转换表达式的格式如下: 【强制转换表达式】(类型名)表达式 这里的类型名表示的是表达式应该转换成类型。 下面的例子显示了使用强制类型转换表达式计算float类型值小数部 阅读全文
posted @ 2021-04-19 10:53 Sai佐为 阅读(322) 评论(0) 推荐(0)
摘要:算术转换规则 C99中的隐式转换和C89中的隐式转换不同,主要是因为C99增加了一些类型(_Bool、long long 类型、扩展的整数类型和复数类型) 为了定义转换规则,C99允许每个整数类型具有“整数转换等级”。下面按从最高级到最低级的顺序排列。 long long int 、 unsigne 阅读全文
posted @ 2021-04-19 10:30 Sai佐为 阅读(191) 评论(0) 推荐(0)
摘要:常用算术转换 不适用于 赋值运算。C语言会遵循另一条简单的转换规则,那就是把赋值运算右边的表达式转换成左边变量的类型。如果变量的类型至少和表达式类型一样“宽”,那么这种转换将没有任何障碍。例如: char c; int i; float f; double d; i = c; /*c is conv 阅读全文
posted @ 2021-04-16 22:00 Sai佐为 阅读(160) 评论(0) 推荐(0)
摘要:常用算术转换有哪些? 常用算术转换的策略是什么? 什么是整值提升? 为什么避免混合使用无符号整数和有符号整数? 常用算术转换可用于大多数二元运算符(包括算术运算符、关系运算符和判等运算符)的操作数。例如,假设变量f为float类型,而变量i为int类型。常用算术转换将会应用在表达式f+i的操作数上, 阅读全文
posted @ 2021-04-15 19:04 Sai佐为 阅读(238) 评论(0) 推荐(0)
摘要:什么是算术运算? 什么是操作数? 什么是基本类型? 会发生隐式转换的情况有哪些? 在执行算术运算时,计算机比C语言的限制更多。为了让计算机执行算术运算,通常要求操作数有相同的大小(即位的数量相同),并且要求存储的方式也相同。计算机可能可以直接将两个16位整数相加,但是不能直接将16为整数和32为整数 阅读全文
posted @ 2021-04-15 18:24 Sai佐为 阅读(57) 评论(0) 推荐(0)
摘要:一、代替scanf、printf的函数 二、getchar函数返回的是什么类型的值? 三、为什么getchar和putchar执行速度快? 四、getchar函数优于scanf函数的地方? 五、while((ch = getchar()) == ' ')这个以下的内容没看懂 C语言还提供了另外一些读 阅读全文
posted @ 2021-04-13 22:16 Sai佐为 阅读(445) 评论(0) 推荐(0)
摘要:scanf(" %c", &ch); 转换说明%c允许scanf函数和printf函数对单个字符进行读/写操作: char ch; scanf("%c", &ch); printf("%c", ch); 在读入字符前,scanf函数不会跳过空白字符。如果下一个未读字符时空格,那么在前面的例子中,sc 阅读全文
posted @ 2021-04-12 22:01 Sai佐为 阅读(290) 评论(0) 推荐(0)
摘要:#include<ctype.h> toupper函数 使用if语句把小写字母转换成大写字母: if('a' <= ch && ch <= 'z') ch = ch - 'a' + 'A'; 但这不是最好的方法。一种更快捷且更易于移植的转换方法是调用C语言的toupper库函数: ch = toup 阅读全文
posted @ 2021-04-12 21:53 Sai佐为 阅读(88) 评论(0) 推荐(0)
摘要:一、程序处理字符集中的每一个字符C语言用了什么特殊表示法? 二、为什么需要用到转义序列? 三、转义序列有哪两种? 四、八进制转义序列由什么组成? 五、十六进制转义序列由什么组成? 七、 转义字符的常量的形式是什么? 六、除转义序列还有什么表示字符的特殊表示法? 字符常量通常是用单引号括起来的单个字符 阅读全文
posted @ 2021-04-12 21:29 Sai佐为 阅读(841) 评论(0) 推荐(0)
摘要:什么统称为算术类型? 整数类型和浮点类型统称为算术类型。下面对C89中的算术类型进行了总结分类 整值类型: 字符数型(char); 有符号整型(signed char 、 short int 、 int 、 long int); 无符号整型(unsigned char 、short int 、 in 阅读全文
posted @ 2021-04-12 10:57 Sai佐为 阅读(377) 评论(0) 推荐(0)
摘要:一、有、无符号字符的取值范围分别是多少? 二、C语言标准有没有说明普通char类型数据是有符号型还是无符号型? 三、为什么C允许使用单词signed和unsigned去修饰char类型? 四、char类型的可移植性技巧是什么? 五、整值类型(统称)包含什么? 六、枚举类型是什么?(暂时回答不了) 既 阅读全文
posted @ 2021-04-11 21:32 Sai佐为 阅读(869) 评论(0) 推荐(0)
摘要:一、C语言把字符当做什么进行处理? 二、事实上在C中字符常量是什么类型? 三、如何把含有小写字母的变量转化成大写字母? 四、字符拥有和数相同的属性,能带来什么好处? 五、程序使用比较符号进行字符比较不易移植是什么? 在C语言中字符的操作很简单,C语言把字符当作小整数进行处理。毕竟所有字符都是以二进制 阅读全文
posted @ 2021-04-11 17:24 Sai佐为 阅读(84) 评论(0) 推荐(0)