陈立龙 (华中师范大学)
C程序设计笔记( )
V1.06
一、C语言执行流程:
1、在C 语言中,一个C 语言源程序需要经过编译、连接和执行三个过程。其中编译是指将源程序 (*,c)
翻译成二进制形式的目标程序 (*.obj),连接是指将目标程序与系统的函数库或用户自定义的目标程序连
接起来形成可执行的目标程序 (*.exe)。
2、C语言程序如何在Dos环境下运行:
从上图我们可以看出CL 命令实现了DOS环境下的编译和连接,在执行时只需直接输入文件名就可
以了。(这个过程有点类似于java程序在Dos 中的运行)
3、至于Linux 下C语言程序的运行,将会在Linux C 中介绍。
C语言中的数据读取与强制转换:
printf 函数中的格式符规定了如何从内存中取数据,如%d 表示从内存中取出两个字节 (或四个字节)的数
据并显示出来,因此,在利用printf输出数据时,一定要选好输出格式,在这个地方是不存在数据类型转
换的。(注意:在printf语句中,float会自动转换成double类型!)
C++中类型长度: char(1字节)
1
陈立龙 (华中师范大学)
表达式运算符的优先级、结合性与求值顺序
1、优先级
优先级主要用来指定相邻的不同操作符的求值顺序。下面是C/C++里面基本的各类运算符的优先级排列:
((),[], >,.,++,--)
初等运算符 — 【注意是后置的自增与自减】
【向左结合】 单目运算符(++,--,~,!,-,+(正负号),*,&,(类型),sizeof,new,delete)
算术运算符(+,-,*,/,%)
移位运算符(<>)
关系运算符(>,> ,
逻辑运算符(&,^(异或),|,&&.||) 【“位与”同“逻辑与”的区别】
【向左结合】
条件运算符(?:)
【向左结合】
赋值运算符(包括复合型)
逗号运算符
2、结合性
结合性主要用来指定优先级相同的两个相邻操作符的求值顺序。由上图可以看出,唯有単目、条件和赋值
运算符在表达式的计算过程中遵循左结合的法则,其他的全部是右结合!
3、求值顺序
有了优先级和结合性,并不能完全解决表达式计算顺序的确定性问题,如:a*b+c*d+e*f,这里没有规
则要求那个乘法运算式子先进行计算,优先级在这个地方是不起作用的。因此,这还与操作数的计算顺序
2
陈立龙 (华中师范大学)
有关,但在C语言中,并没有规定所有操作数的求值顺序,而在java 语言中,其求值顺序是固定的,即从
左向右。也就说,C/C++在这个问题上更加灵活,因此,凡是需要求值顺序才能确定顺序的表达式是不具
有可移植性的。
但是,要特别注意的是,C/C++中特定对几个运算符设置了求值顺序,即&&,||,?:和逗号运算符。
数组、指针
一、数组
1、分类问题:
按照不同的分类方法,数组可以分成不同类别。常见的分类方法有:按维数,按数组元素类型,空间
分配方式 (静态或动态)等。
2、数组中的基本语法:
(1)数组同结构体一样,也是属于复合数据类型,