量。
【例 3。18】
main(){
int a;b=322;
float x;y=8。88;
char c1="k";c2;
a=y;
x=b;
a=c1;
c2=b;
printf(〃%d;%f;%d;%c〃;a;x;a;c2);
}
本例表明了上述赋值运算中类型转换的规则。a 为整型,赋予实型量 y 值 8。88 后只取整
数 8。x 为实型,赋予整型量 b 值 322, 后增加了小数部分。字符型量 c1 赋予 a 变为整型,
整型量 b 赋予 c2 后取其低八位成为字符型(b 的低八位为 01000010,即十进制 66,按 ASCII
码对应于字符 B)。
3。 复合的赋值运算符
在 赋 值 符 “ = ” 之 前 加 上 其 它 二 目 运 算 符 可 构 成 复 合 赋 值 符 。 如 +=;…=;*=; /
=;%=;=;&=;^=;|=。
构成复合赋值表达式的一般形式为:
变量 双目运算符=表达式
它等效于
变量=变量 运算符 表达式
例如:
a+=5 等价于 a=a+5
x*=y+7 等价于 x=x*(y+7)
r%=p 等价于 r=r%p
复合赋值符这种写法,对初学者可能不习惯,但十分有利于编译处理,能提高编译效
率并产生质量较高的目标代码。
3。10 逗号运算符和逗号表达式
在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接
谭浩强 C 语言程序设计 2001 年 5 月 1 日
起来组成一个表达式, 称为逗号表达式。
其一般形式为:
表达式 1,表达式 2
其求值过程是分别求两个表达式的值,并以表达式 2 的值作为整个逗号表达式的值。
【例 3。19】
main(){
int a=2;b=4;c=6;x;y;
y=(x=a+b);(b+c);
printf(〃y=%d;x=%d〃;y;x);
}
本例中,y 等于整个逗号表达式的值,也就是表达式 2 的值,x 是第一个表达式的值。
对于逗号表达式还要说明两点:
1) 逗号表达式一般形式中的表达式 1 和表达式 2 也可以又是逗号表达式。
例如:
表达式 1,(表达式 2,表达式 3)
形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:
表达式 1,表达式 2,…表达式 n
整个逗号表达式的值等于表达式 n 的值。
2) 程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定
要求整个逗号表达式的值。
并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号
只是用作各变量之间的间隔符。
3。11 小结
3。11。1 C的数据类型
基本类型,构造类型,指针类型,空类型
3。11。2 基本类型的分类及特点
字符型
基本整型
短整型
长整型
无符号型
无符号长整型
单精度实型
双精度实型
类型说明符
char
int
short int
long int
unsigned
unsigned long
float
double
字节
1
2
2
4
2
4
4
8
数值范围
C 字符集
…32768~32767
…32768~32767
…214783648~214783647
0~65535
0~4294967295
3/4E…38~3/4E+38
1/7E…308~1/7E+308
3。11。3 常量后缀
L 或 l 长整型
U 或 u 无符号数
F 或 f 浮点数
3。11。4 常量类型
谭浩强 C 语言程序设计 2001 年 5 月 1 日
整数,长整数,无符号数,浮点数,字符,字符串,符号常数,转义字符。
3。11。5 数据类型转换
?u33258X动转换:在不同类型数据的混合运算中,由系统自动实现转换,由少字节类型向多字节
类型转换。不同类型的量相互赋值时也由系统自动进行转换,把赋值号右边的类型转换为左
边的类型。
?u24378X制转换:由强制转换运算符完成转换。
3。11。6 运算符优先级和结合性
一般而言,单目运算符优先级较高,赋值运算符优先级低。算术运算符优先级较高,关
系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运
算符具有右结合性。
3。11。7 表达式
表达式是由运算符连接常量、变量、函数所组成的式子。 每个表达式都有一个值和类
型。表达式求值按运算符的优先级和结合性所规定的顺序进行。
谭浩强 C 语言程序设计 2001 年 5 月 1 日
4 最简单的 C 程序设计—顺序程序设计
从程序流程的角度来看,程序可以分为三种基本结构, 即顺序结构、分支结构、循环
结构。 这三种基本结构可以组成所有的各种复杂程序。C语言提供了多种语句来实现这些
程序结构。 本章介绍这些基本语句及其在顺序结构中的应用,使读者对C程序有一个初步
的认识, 为后面各章的学习打下基础。
4。1 C语句概述
C程序的结构:
C程序
源程序文件1
源程序文件2
源程序文件n
预 处 理 命 令
全 局 变 量 声 明
函 数 首 部
函 数 1
函 数 体
函 数 n
局 部 变 量 声 明
执 行 语 句
C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。
C 语句可分为以下五类:
1) 表达式语句
2) 函数调用语句
3) 控制语句
4) 复合语句
5) 空语句
1。 表达式语句:表达式语句由表达式加上分号“;”组成。
其一般形式为:
表达式;
执行表达式语句就是计算表达式的值。
例如:
x=y+z; 赋值语句;
谭浩强 C 语言程序设计 2001 年 5 月 1 日
y+z; 加法运算语句,但计算结果不能保留,无实际意义;
i++; 自增 1 语句,i 值增 1。
2。 函数调用语句:由函数名、实际参数加上分号“;”组成。
其一般形式为:
函数名(实际参数表);
执行函数语句就是调用函数体并把实际参数赋予函数定义中的形式参数,然后执行
被调函数体中的语句,求取函数值 (在后面函数中再详细介绍) 。
例如:
printf(〃C Program〃);调用库函数,输出字符串。
3。 控制语句:控制语句用于控制程序的流程, 以实现程序的各种结构方式。它们由特定
的语句定义符组成。C语言有九种控制语句。 可分成以下三类:
1) 条件判断语句:if 语句、switch 语句;
2) 循环执行语句:do while 语句、while 语句、for 语句;
3) 转向语句:break 语句、goto 语句、continue 语句、return 语句。
4。 复合语句:把多个语句用括号{}括起来组成的一个语句称复合语句。
在程序中应把复合语句看成是单条语句,而不是多条语句。
例如:
{ x=y+z;
a=b+c;
printf(“%d%d”,x,a);
}
是一条复合语句。
复合语句内的各条语句都必须以分号“;”结尾,在括号“}”外不能加分号。
5。 空语句:只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程
序中空语句可用来作空循环体。
例如
while(getchar()!="n")
;
本语句的功能是,只要从键盘输入的字符不是回车则重新输入。
这里的循环体为空语句。
4。2 赋值语句
赋值语句是由赋值表达式再加上分号构成的表达式语句。
其一般形式为:
变量=表达式;
赋值语句的功能和特点都与赋值表达式相同。 它是程序中使用最多的语句之一。
在赋值语句的使用中需要注意以下几点:
1。 由于在赋值符“=”右边的表达式也可以又是一个赋值表达式,
因此,下述形式
变量=(变量=表达式);
是成立的,从而形成嵌套的情形。
其展开之后的一般形式为:
谭浩强 C 语言程序设计 2001 年 5 月 1 日
变量=变量=…=表达式;
例如:
a=b=c=d=e=5;
按照赋值运算符的右接合性,因此实际上等效于:
e=5;
d=e;
c=d;
b=c;
a=b;
2。 注意在变量说明中给变量赋初值和赋值语句的区别。
给变量赋初值是变量说明的一部分,赋初值后的变量与其后的其它同类变量之
间仍必须用逗号间隔,而赋值语句则必须用分号结尾。
例如:
int a=5;b;c;
3。 在变量说明中,不允许连续给多个变量赋初值。
如下述说明是错误的:
int a=b=c=5
必须写为
int a=5;b=5;c=5;
而赋值语句?
小说推荐
- VC语言6.0程序设计从入门到精通
- -Page 1-Visual C 6.0 程序设计从入门到精通求是科技 王正军 编著
- 其他
- 最新章:第136章
- C语言修仙
- 文案 林浔是一个程序员,通宵编代码后发现自己身体内多了一个程序输入窗口 他尝试编了一个循环程序 第二天,邻居家老头找上门来:小浔,你小小年纪,竟已跨入炼气期,做我门下弟子如何 第三天,在街上被人拍肩膀:少年,你骨骼惊奇,加入我宗门如何 林浔 后来,他发现现代社会真的有修仙者。而别人修仙靠灵力,自己修
- 魔法玄幻
- 最新章:第177章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 其他
- 最新章:第143章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 其他
- 最新章:第4章
- 三少诱妻C计画
- 作品:三少诱妻C计画 作者:冬情 男主角:雷振南 女主角:花雨侬 内容简介 她从小就喜欢一个大哥哥 也和大哥哥约定好要结婚 她一直在等他回来找她 然后当他的新娘 啊!怎么办、怎么办 老爹竟然帮她们找了结婚对象 要把她们统统嫁掉 不行啦!她要当大哥哥的新娘 怎么可以嫁给别人呢 她一定要跟姐姐们一起跟老
- 都市言情
- 最新章:第23章
- 设计
- 作品:设计 作者:槐绿 男主角:殷采衣 女主角:相从 内容简介 幼时的一点夙缘 她铭记苦寻七年 终于重逢,终得亲近 一路言笑晏晏的和睦背后 是冰冷的一次次试探 由始至终,连一点点的信任都得不到 不难过,终是不可能的事 原已决定,真相大白之日 也是她离去之时 只是 这个后脚就跟来的人是怎么回事 正文
- 都市言情
- 最新章:第26章
- 设计师
- 《设计师》作者:常叁思文案工科男有工科男的温柔,在钱心一三十五岁那年,陈西安参照行业最严标准瞒着他造了栋房子。抗震9度,耐火一级,防雷一级,传热系数2.0,地震不倒,雷劈不到,冬暖夏凉,节能环保。精装验收后,他把设计说明连同钥匙一起递到钱心一面前,说“我给你一个家吧”结果职业病发作的钱心一震惊的说“
- 激情
- 最新章:第145章
- 设计你
- 作品:设计你 作者:艾佟 男主角:官聿颢 女主角:伊若橘 内容简介 唉唉唉,善良小女子遇上骄蛮千金女 下场只有三个字:灰熊惨 人家忧心自家大哥深陷初恋阴霾搞不婚 她不过好心提出传说之泉具有爱情魔力 取泉水、诱男主角喝下的任务便要她扛 官大哥的幸福问题她也很关心没错啦 毕竟他俩有过不寻常的“亲密接触
- 都市言情
- 最新章:第25章
- 设计成婚
- 书名:设计成婚作者:叶兮凉【文案】郁瑾在无数次相亲失败之后,颓败地对许韦慕试探“你看我们俩都这么熟了,要不下半辈子你就跟我凑合着过吧”许韦慕挑眉“结婚可以,不过要签婚前协议”郁瑾抱起枕头,砸他“我怎么不知道你这么小气”许韦慕勾起嘴角,缓缓开口“协议内容只有一条,不许离婚”PS:后来郁瑾才知道,她会没
- 都市言情
- 最新章:第58章