C语言程序设计复习总结(1)

第一、二章

C语言的特点

C语言是一种面向过程的高级语言。

1、C语言语句简介紧凑,使用方便灵活。
2、运算符丰富,表达能力强。
3、C语言程序可移植性好。
4、生成的目标代码质量高,运行效率高。
5、语言处理能力强。
6、C语言是一种结构化语言。

C语言的数据类型

主类子类
整型
基本类型字符型
实型(浮点型)
数组类型
构造类型结构体类型
共用体类型
枚举类型
指针类型
空类型

C语言的常量

一、 直接常量

1、整型常量

十进制:由数组0~9,正、负号组成。
八进制:以0(数字0)为前缀,其后由数字0~7组成。不含符号。
十六进制:以0x或0X为前缀,其后由数字0~9和字母A ~F(大小写都可)组成。不含符号。

注意:
1)在一个整型常量后面加一个字母u或U,认为是 unsigned int 型。
2)在一个整型常量后面加一个字母l 或L,认为是 long int 型。

2、实型常量

1)小数形式
由整数部分、小数点和小数部分组成,当整数部分或小数部分为0时,可以省略不写,但小数点不可省略。
用小数形式表示实数时,必须要有小数点,并且小数点前、后至少一边要有数字。

2)指数形式
由尾数部分、字母E或e和指数部分组成,格式为:+(或 - )尾数E(或e)指数。
用指数形式表示实数时,字母E(或e)前后必须要有数字,并且指数部分只能是整数。

3、字符型常量

特点:
1)字符型常量只能用单引号(‘ ’)括起来,不能用双引号或其他符号。
2)字符型常量只能是单个字符,不能是字符串。
3)字符可以是ASCII字符集中的任意字符。C语言中的字符型常量具有数值特性,可以像整数一样参加运算。

转义字符表:

转义字符转义功能ASCII码值
\0空字符0
\a响铃7
\b退格(Backspace)8
\t水平制表符(即横向跳格)9
\n回车换行(Enter)10
\v竖向跳格11
\f换页12
\r回车13
\"双引号(“)34
\’单引号(‘)39
\?问号(?)63
\\反斜线字符(\)92
\ddd1~3位八进制所代表的字符
\xhh1~2位十六进制所代表的字符

4、字符串常量

字符串常量由一对双引号括起来的零个或多个字符序列。
字符串常量在内存中占用一段连续的存储单元,系统自动在每个字符串的尾部加上 ’\0‘ 作为字符串的结束标志,因此,n个字符组成的字符串,在内存中要占n+1个字节空间。

C语言的变量

定义格式: 类型说明符 变量名表

类型说明符的类型决定了编译时分配给变量的内存单元的多少。

整型变量

关键字类型占用字节数
short int短整型2
int整型4
long int长整型4
unsigned short无符号短整型2
unsigned int无符号整型4
unsigned long无符号长整型4

实型变量

关键字类型占用字节数
float单精度型4
double双精度型8

字符型变量

关键字类型占用字节数
char整型1

运算符与表达式

复合赋值运算符

运算符应用举例等价形式
+=a+=xa=a+(x)
- =a-=xa=a-(x)
* =a*=xa=a*(x)
/=a/=xa=a/(x)
%=a%=xa=a%(x)

基本算术运算符

运算符+-*/%
名称求余

自加自减运算符

符号名称作用用于前缀用于后缀
++自增运算符自增运算先加1再赋值先赋值再加1
- -自减运算符自减运算先减1再赋值先赋值再减1

优先级与结合性

优先级由表从上到下依次递减
Alt

C语言中各运算符的结合性

1、左结合性(自左至右):

例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合方向就称为“左结合性”。

2、右结合性(自右至左)

自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

逗号运算符和逗号表达式

一般表达式: 表达式1,表达式2,表达式3,…,表达式n

逗号表达式的执行顺序是:从左到右依次计算每个表达式的值,并把最后一个表达式的值作为整个逗号表达式的值。

示例:

#include <stdio>

int main()
{	int i,j=7;
	float k=5;
	i=(j=j+2,j/k);
	printf("i=%d\n",i);
	return 0;
}
i=1

求字节数运算符

1)sizeof(表达式)或 sizeof 表达式
2)sizeof(数据类型名)

示例:

#include <stdio>

int main()
{	int a,b;
	a=sizeof(3+5.0);
	//先计算3+5.0为double型的 8.0,再求double型字节数为8。
	b=sizeof 3+5.0;
	//先计算sizeof 3为4,在计算4+5.0=9.0,赋值给int型变量b时为9。
	printf("%d%d%d\n",a,b,sizeof("china"));
	//”china“字符串长度为5,加上结束符’\n’为6。
	return 0;
}
8,9,6

数据类型转换

自动类型转换

算数运算中,首先有如下类型转换规则:
1、字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) 。
2、short型转换为int型(同属于整型) 。
3、float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型) 。

其次,有下面的规则:
当不同类型的数据进行操作时,应当首先将其转换成相同的数据类型(可以没有中间转换类型),然后进行操作,转换规则是由低级向高级转换。转换规则如下图所示:
Alt
强制类型转换

强制类型转换是通过类型转换运算来实现的。其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。

注意:
1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int)(x+y)写成(int)x+y则成了把x转换成int型之后再与y相加了。
2.无论是强制转换或是自动转换,都只是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说明时对该变量定义的类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值