查缺补漏
C语言的祖先是ALGOL60,是1960年由国际计算机委员会设计的一种面向过程的结构化程序设计语言,用它编写的程序具有可读性和可移植性好的特点。但是,它不能直接对硬件进行操作,不宜用来编写系统程序。系统程序用汇编编写,是面向机器的,所以可移植性与可读性比较差。
1983年,美国国家标准局ANSI制定了C语言标准,称为ANSI C或现代C。后来,ANSI C标准被ISO(国际标准化组织)采纳成为ISO9899,简称C89,其第一个版本文件在1990年出版。
到了20世纪90年代,C++标准在不断更新,C语言标准又得到改进,就是ISO/IEC9899:1999(1999年出版),俗称C99,该标准于2000年3月被ANSI采用。
但是各个公司对C99的支持不同,GCC和其他一些商业编译器支持C99的大部分特性,微软和Borland不感兴趣,如vc++6.0不完全支持C99.
C语言是面向过程的语言,按照算法的实现过程逐条语句编写,通知计算机一步一步怎么做。面向对象程序设计(OOP)方向:C++语言,也叫“带类的C”。
由于设计Internet上的Web浏览器的需要,1994年出现了Java语言,不仅支持OOP,而且具有软硬件平台无关性的特点,适合进行网络开发。Java脱胎于C++,被称为C++的衍生语言。2000年,微软公司推出Microsoft Visual Studio.Net,是一个具有公共语言子集的开发平台,实现了多种语言及其类库的无缝集成,使应用程序开发更容易、更简单。C#是专为这一平台推出的全新语言,它也派生于C和C++,并具有语言简洁、面向对象、与Web紧密结合、卓越的安全性能、灵活性和兼容性俱佳等特点,称为NET平台一流的网络编程工具。
格式输出函数:
printf("格式控制字符串",输出项目清单);
%d用来输出十进制整数;
%f用来输出实数;以小数形式输出单、双精度实数;
x,X以十六进制形式输出无符号整数,不输出前缀0x;
u以十进制形式输出无符号整数;
e,E以指数形式输出单、双精度实数;
g,G以%f或%e中较短的输出宽度输出单、双精度实数;
c输出单个字符;
s输出字符串。
输出项目清单中包含0个或多个输出项,可以是常数、变量或表达式,当有多个输出项时,相互之间用逗号隔开。
注意“格式控制符必须与对应输出项的数据类型严格一致。
格式输入函数:
scanf(”格式控制字符串“,输入项目清单);
输入项目清单中至少包含一个输入项,且必须是变量的地址(表示形式是在变量名前加&),当有多个输入项时,相互之间用逗号隔开。
printf()与scanf()是C编译系统提供的库函数,不是C语言的组成部分,而是由C编译系统提供的一些非常有用的功能函数,例如各种输入输出函数、数学函数、字符串处理函数等,可供用户在自己的程序中直接调用。stdio.h
long long int 64位长度,其取值范围是-2^63-1~2^63-1;
unsigned long long int取值范围是0~2^64-1.
unsigned char 1字节 0~255
signed char -128~127
short [int] 2字节 -32768~32767
unsigned short [int] 0~65535
[signed] long [int] 4字节 -2147483648~2147483647
unsigned long [int] 4字节 0~4294967295
float 4字节
double 8字节
标识符:
C语言规定,标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须是字母或下划线。建议变量名的长度最好不要超过8个字符。
符号常量:
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。
符号常量在使用前必须先定义,有以下两种定义形式:
1、#define 标识符 字符串
#define也是一条预处理命令(预处理命令都以#开头),称为宏定义命令,其功能是把该标志符定义为其后的字符串。
2、const 类型 标识符 = 常数
标识符是只读常量,并且其值在程序运行的过程中不可以改变,习惯上符号常量的标识符用大写字母,变量标志符用小写字母,以示区别。
符号常量与变量不同,值在其作用域内不能改变,也不能再被赋值。使用符号常量的好处是含义清楚,能做到”一改全改“。
八进制整常数必须以0开头,基数取值是0~7.
0x或0X是十六进制前缀,基数取值0~9,A~F或a~f。
1表达式计算中的自动类型转换
1)若参与运算的量的类型不同,则先转换成统一类型,再进行计算;
2)转换按数据长度增加的方向进行,以保证精度不降低,如Int和long型运算时,先把int转换成long型后再进行运算;
3)所有浮点运算都是以双精度进行的,即使只含有float单精度度量运算的表达式,也要先转换成double型,再做运算;
4)char型和short型参与计算时,必须先转换成Int型。
在赋值运算中,等号两变量数据类型不同时,等号右边的类型将转换为左边类型。如果右边数据类型比左边长时,将丢失一部分数据,会降低精度,丢失的部分按四舍五入向前舍入。
2强制类型转换
(类型说明符) (表达式)
必须都加括号,单个变量可以不加。
无论是强制转换还是自动转换,都只是为了本次计算的需要而对变量的数据长度进行临时的转换,不改变数据说明时对该变量定义的类型。
sizeof运算符来测试不同数据类型的长度(字节数)。
%5.4lf 小数形式:指输出宽度为5,精度为4,若实际长度超过5,则按照实际位数输出,小数位数超过4位部分被截去。