c语言的知识大全

秦风学

C语言基础知识整理

1、任何一个c语言程序都必须包括以下格式:?

main()?

{ }?

这是c语言的基本结构,任何一个程序都必须包含这个结构。括号内可以不写任何内容,那么该程序将不执行任何结果。?

2、main()----在c语言中称之为“主函数”,一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略。?

3、被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容。?

4、在{ }里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志。?

5、printf(“a=%d,b=%d,sum=%d\n”,a,b,sum); ----通过执行这条c语言系统提供给我们直接使用的屏幕输出函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果:?

a=20,b=15,sum=35?

6、#include?

注意:(1)以#号开头 (2)不以分号结尾?

这一行没有分号,所以不是语句,在c语言中称之为命令行,或者叫做“预编译处理命令”。?

7、程序中以 /_开头并且以_/结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。??

常量

在程序运行中,其值不能被改变的量称为常量。常量有5种类型:整型常量、实型常量、字符常量、字符串常量和符号常量。?

(一)数值转换?

数字的四种表现形式:?

①:二进制:所有数字由0,1构成,逢二进一,二进制数中不会出现2.。?

例:110101?

②:八进制:以数字0(注意不是以字母O,o)开头,所有数字由0~7构成,逢八进一,八进制数中不会出现8。?

例:0112,0123,077等?

③:十进制:所有数字由0~9构成,逢十进一,十进制数中不会出现10。?

例:0,12,-15等?

④:十六进制:以0x或者0X(数字0加字母x)开头,所有数字由0~9,A~F(或者a~f)构成,逢十六进一(其中A、B、C、D、E、F分别代表10、11、12、13、14、15)?

例:0x4A、0X14c7等?

在计算机内部,数字均以二进制形式表示和存放,用户输入的普通十进制数字都要被计算机转换成二进制才能在计算机内部存储,同样计算机的运算结果也为二进制,一般要将其转换成十进制数再输出给用户阅读,这种转换通常由计算机自动实现。?

(1)将十进制转换二进制、八进制和十六进制?

除法:将十进制数除以2,记录余数,得到的商继续除以2,直到商为0,然后将各次相处所得的余数从后往前逆序排列,所得余数数字序列就是该十进制数对应的二进制数。八进制和十六进制转换方法同上。?

例:十进制数13转换成二进制数的值为1101,转换八进制为015,转换成十六进制为D.?

(2)将二进制、八进制和十六进制转换成十进制?

乘积求和:将二进制的每一位从低位到高位(右边为低位,左边为高位)分别乘以20,21,22。。。。,然后将这些积求和。?

例如:(1101)2=(13)10 (317)8=(207)10 (23E)16=(574)10?

(3)二进制与八进制、十六进制数之间的相互转换?

①:二进制转八进制:从右往左每三位一组转换成十进制数,将所得数据组合就是对应的八进制数(注意:高位不足三位补零)。?

例:(010 110 111)2=(267)8?

②:二进制转十六进制:从右往左每四位一组转换成十进制数,将所得数据组合就是对应的十六进制数(注意:高位不足四位补零)。?

例:(0101 1011)2=(5B)16?

③:八进制转化二进制:每一位数字转换为三位二进制数字?

例:(13)8=(001 011)2=(1011)2?

(注意:去掉前面的两个00,因为0在高位没有意义)?

④:十六进制转化二进制:每一位数字转换为四位二进制数字?

例:(E3)16=(1110 0011)2?

(二)整型常量?

整型常量有3种形式:十进制整型常量、八进制整型常量和十六进制整型常量。?

(注意:c语言中没有直接表示二进制的整型常量,在c语言源程序中不会出现二进制。)?

书写方式如下:?

十进制整型常量:123 , 0 ,-24 , 85L(长整型常量) 等?

八进制整型常量:051 ,-026 ,0773 等?

十六进制整型常量:0x55 , 0x1101 , 0x , 0x5AC0 , -0xFF。?

其中L为长整型。?

(三)实型常量?

实型常量有两种表示形式:小数形式和指数形式。?

小数形式:5.4 0.074 -23.0?

指数形式:5.4e0 4.3e-3 -3.3e4?

(1)小数部分为0的实型常量,可以写为453.0 或453。?

(2)用小数表示时,小数点的两边必须有数,不能写成“ .453“和“453.“,而应该写成“0.453“和“453.0“。?

(3)用指数写法时,e前必须有数字,e后面的指数必须为整数(注意:整数阶码可以是正数,负数,也可以是八进制数、十六进制数,但必须为整数)。?

(四)字符常量?

字符常量的标志是一对单引号‘ ’,c语言中的字符常量有两类:?

(1)由一对单引号括起来的一个字符,如‘a ’, ‘r’ ,‘#’。注意: ′a′ 和 ′A′ 是两个不同的字符常量。?

(2)由一对单引号括起来,以反斜杠\开头,后跟若干数字或者字母,比如‘\n’,其中“\“是转义的意思,后面跟不同的字符表示不同的意思,这类字符常量叫转义字符。具体如图所示 。?

转义字符? 转义字符的意义 ASCII码?

\n? 回车换行? 10?

\t? 横向跳到下一制表位置? 9?

\b? 退格? 8?

\r? 回车? 13?

\f? 走纸换页? 12?

\\? 反斜线符"\"? 92?

\'? 单引号符? 39?

\”? 双引号符? 34?

\a? 鸣铃? 7?

\ddd? 1~3位八进制数所代表的字符?

\xhh? 1~2位十六进制数所代表的字符?

(五)字符串常量?

C语言中,以双引号括起来的,由若干个字符组成的序列即为字符串常量。?

例:“ni hao” “happy”等等。?

(六)符号常量?

符号常量是由宏定义“#define“定义的常量,在C程序中可用标识符代表一个常量。?

例:计算圆的面积的c程序。?

#include?

#define PI 3.14159?

main()?

{?

float r,s;?

r=12.5;?

S=PI _r_r;?

printf(“s= %f ”,s);?

}?

说明:?#define 是宏定义,此程序中所有出现PI的地方都代表3.14159,同时PI称为符号常量。习惯上我们用大写字母来表示符号常量,小写字母表示变量,这样比较容易区别。?

类型的自动转换和强制转换

当同一表达式中各数据的类型不同时,编译程序会自动把它们转变成同一类型后再进行计算。转换优先级为:?

char < int < float < double?

即左边级别“低“的类型向右边转换。具体地说,若在表达式中优先级最高的数据是double型,则此表达式中的其他数据均被转换成double型,且计算结果也是double型;若在表达式中优先级最高的数据是float型,则此表达式中的其他数据均被转换成float型,且计算结果也是float型。?

在做赋值运算时,若赋值号左右两边的类型不同,则赋值号右边的类型向左边的类型转换;当右边的类型高于左边的类型时,则在转换时对右边的数据进行截取。?

除自动转换外,还有强制转换,表示形式是:?

( 类型 )(表达式);?

例:(int)(a+b)?

讨论:当a值赋值为3.4,b值赋值为2.7,(int)(a+b)和(int)a+b的值分别为多少??