1、 程序运行警告和错误
a、 value = 1700 * weight * 14.5833;赋值时会有警告,float转double可能会丢失数据。
b、 scanf("%f", &weight);获取用户输入报错。
2、 获取换行和暂停
第一个getchar()获取用户输入之后的换行,第二个暂停程序。
3、 浮点型
浮点型float可以处理更大范围的数据,及存储带小数的数字。
%0.2f格式化精确输出,匹配一个float类型数据,并保留两位小数。
4、 用户输入
用户输入scanf()读取用户从键盘的输入,&weight告诉scanf()把输入值复制给weight变量,&符号查找变量。
scanf()是标准C中提供的用户输入,scanf_s()是VS提供的安全型的用户输入,区别在于:后者提供最后一个参数接受用户输入数据的大小,
而前者在读取数据时不检查边界,容易造成内存访问越界,scanf_s("%f",&weight,5),很多带_s后缀的方法都是为了让原版函数更安全。
5、 变量和常量
常量数据类型在程序使用之前就已经设定好,整个运行过程中没有变化,而变量在运行过程中可能发生变化或被赋值。
6、 数据类型关键字
用int表示基本的整数类型,(long、short、unsigned、signed)用来提供基本整数类型的变式如unsigned int,short int等。
用char表示指定的字母和其他字符(#、$、%、*),还可以表示较小的整数。
用float、double、long double表示带小数点的数。
用_Bool表示布尔值(true或false),_Complex表示复数,_Imaginary表示虚数。
7、 位、字节和字
位(bit)是计算机最小的存储单位,可以存储0或1。
字节(byte)是常用的计算机存储单位,一个字节8位,即一个字节可以表示0-255的整数或一组字符。
字是设计计算机给定的自然存储单位,对于8位的计算机的一个字长为8位,之后有字长32位、64位等,计算机字长越大,数据转移越快,允许访问的内存也更多。
8、 整数类型和浮点类型
整数是以二进制的形式存储在计算机中,浮点类型是分成小数部分和指数部分来表示和存储,如7.0十进制下可以写成7.0或0.7E1,当然计算机中是以二进制和二进制的幂进行存储。
浮点数可以表示的数值范围更大,运算时损失的精度也越多,通常是实际值的估值。
9、 基本数据类型(int整数类型)
int是有符号整型,即int必须是整数,可以是正整数、负整数或零,取值范围以计算机系统而言。一般而言,存储一个int要占用一个机器字长,
如16位系统取值范围位-32768-32767,一般而言系统会使用一个特殊的位表示有符号整数的正负号。
a、 声明int变量,分配存储空间,int a; int a,b,c;等
b、 初始化,可以在声明时同时初始化变量,int a = 1;等
c、 整型常量,如1,33,55,72等整数都是整型常量,但大的数则是long、long long常量。
d、 打印输出,格式化输出%d匹配整数,printf(“%d minus %d is %d.\n”,num);当参数与格式化占位符不匹配时,会在内存中随机读取缺少的参数值。
e、 八进制和十六进制,在表达和计算相关的值非常方便,如十六进制的每一位数恰好是4位二进制数,C语言中使用0前缀表示八进制,0x或0X前缀表示十六进制,
进制输出显示,%d十进制,%o八进制,%x十六进制,另外如需显示前缀则需要%#o、%#x、%#X。
6、 基本数据类型(其它整数类型short、long、unsigned修饰)
a、 short int类型,简写short,占用的存储空比int类型少,用于较小数值,节省空间,有符号型。
b、 long int或long占用的存储空间比int大,存储较大的值,有符号型。
c、 long long int或long long,存储更大的值,有符号型。
d、 unsigned int或unsigned只用于非负值场合,与有符号性范围表示不同,有符号型范围-3268-32767,unsigned范围再0-65535之间,可以表示更大的数。
e、 unsigned long、unsigned long long、unsigned int、unsigned short等。
f、 signed修饰强调有符号型数据。
g、 使用顺序,short、int、long、long long,正数表示更大加unsigned。
h、 数值溢出,C标准并未规定溢出规则,一般情况下,有符号型数据和无符号型数据溢出时都是最小范围从新开始计数。
i、 打印,unsigned int使用%u;long使用%ld,如果系统long和int大小相同可直接用%d,但程序移植不方便;%lx十六进制long,%lo八进制long,
格式化时只能使用小写(%lo不是%LO)占位符,常量后缀可大写;%hd、%ho、%hx表示short类型的十进制、八进制和十六进制;%hu、%lu表示无符号型;%llu、%lld表示long long类型。
j、 使用错误的输出转换,输出结果会不同。
10、 字符类型
char类型用于存储字符,技术上看,char属于整数类型,实际存储的是整数,用对应数字代替字符,使用ASCII标准码,其范围是0-127,只需7位,C语言把一个字节定义为一个char类型占用的位数。
11、 非打印字符
一些代表行为的特殊字符,C语言提供了三种方法表示:ASCII码赋值,char beep = 7;鸣叫行为;特殊符号序列表示,转义序列,char enter = ‘\n’;换行;
12、_Bool类
即逻辑值true和false,C语言用1表示true,0表示false,实际上也是一种整型数据,占用一位存储空间。