简单C语言程序的构成和格式
/*求矩形面积*/
#include "stdio.h"
int main() {
double a, b, area;
a = 1.2; /*将矩形的两条边长分别赋给a和b*/
b = 3.6;
area = a * b; /*计算矩形的面积并储存到变量area中*/
printf("a=%f,b=%f,area=%f\n", a, b, area);
}
- C语言规定必须用main作为主函数名,每一个可执行的C程序都必须有且只有一个主函数
- C程序中的每一条执行语句都必须用分号结束
- 注释内容必须放在符号“/*”和“*/”之间,在注释之间不可以再嵌套“/*”和“*/”
标识符、常量和变量
标识符
- 由字母、数字和下划线组成,并且第一个字符必须为字母或下划线
- 类别
- 关键字
- 预定义标识符
- 用户标识符
常量
- 程序运行中,其值不能被改变的量
- 分类
- 整型常量:只用数字表示,不带小数点
- 短整型常量
- 长整型常量
- 实型常量:必须带小数点的数
- 字符常量
- 字符串常量
- 整型常量:只用数字表示,不带小数点
符号常量
/*计算圆面积*/
#include "stdio.h"
#define PI 3.14159 /*定义符号名PI为3.14159*/
int main() {
double r, s;
r = 5.0;
s = PI * r * r;
printf("s=%f\n", s);
}
变量
- 变量指程序运行过程中其值可以改变的量
整型数据
整型常量
- 整型常量可以用十进制、八进制和十六进制等形式表示
- 八进制数:开头必须是数字“0”
- 十六进制数:使用“0x”或“0X”开头;十六进制数中的字母a、b、c、d、e、f既可以小写也可以大写
- 在C程序中,只有十进制数可以是负数,而八进制和十六进制数只能是正数
整型变量
- 基本型的整型变量用类型名关键字int进行定义
int k;
int i, j, k;
int i = 1, j = 0, k = 2;
整型数据的分类
- 短整型(short int)
- 基本整型(int)
- 长整型(long int)
- 无符号型(unsigned):无符号整数在数的末尾加上字母后缀u或U;若是长整型无符号整型常量,加上后缀lu或LU
若不指定变量为无符号型,则变量隐含为有符号型(signed)
整数在内存中的储存形式
- 通常把一个字节的最右边一位称为最低位,最左边一位称为最高位。对于一个有符号整数,其中最高位用来存放整数的符号,称为符号位。若是正整数,最高位放置0;若是负整数,最高位放置1
- 负整数在内存中以“补码”形式存放
例:取二进制数10000101(十进制数-5)的补码
步骤如下:求原码的反码。把原码除符号位之外的二进制码按位取反,得11111010
把所得的反码加1,得到原码的补码。得11111011
把内存中以补码形式存放的二进制码转化成十进制的负整数
- 先对除符号位之外的各位取反
- 将所得二进制数转换成十进制数
- 对所求得的数再减1
实型数据
实型常量
- 小数形式:必须要有小数点
实型变量
- 单精度型(float)
- 定义:
float a,b,c;
- 占4字节的存储单元
- 定义:
- 双精度型(double)
- 定义:
double x,y,z;
- 占8字节的存储单元
- 定义:
算数表达式
基本的算数运算符
- 加(+)
- 减(-)
- 乘(*)
- 除(/)
- 求余(%):运算对象只能是整型
- 这些运算符需要两个运算对象,称为双目运算符
- “+”和“-”也可用作单目运算符,运算符必须出现在运算数的左边
- 如果双面运算符两边运算数的类型一致,则所得结果的类型与运算数的类型一致
- 如果双目运算符两边运算数的类型不一致,系统将自动进行类型转换,使运算符两边的类型达到一致后再进行运算
- 在C语言中,所有实型数的运算均以双精度方式进行
运算符的优先级、结合性和算数表达式
-
算数运算符的优先级
- 算数运算符和圆括号的结合性
- 以上运算符中,只有单目运算符“+”和“-”的结合性是从右到左的,其余运算符的结合性都是从左到右
- 算数表达式
- 定义:用算术运算符和一对圆括号将运算符(或称操作数)连接起来的、符合C语言语法的表达式
- 运算对象可以是常量、变量和函数等
强制类型转换表达式
- 格式:
(类型名)(表达式)
-
(类型名)
称为强制类型转换运算符
-
赋值表达式
赋值运算符和赋值表达式
- 格式:
变量名=表达式
- 赋值运算符的左侧只能是变量,不能是常量或表达式
- C语言规定最左边变量中所得到的新值就是赋值表达式的值
复合赋值表达式
- 定义:在赋值运算符之前加上其他运算符
赋值运算中的类型转换
- 如果赋值运算符两侧的数据类型不一致,在赋值前系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换
- 在C语言的表达式(不包括赋值表达式)中的转换规则
- 一个短整型,一个长整型:
- 一个是有符号整型,一个是无符号整型:
自加、自减运算符和逗号
自加运算符和自减运算符
- “++”和“--”都是单目运算符,不能给常量或表达式赋值
- 既可以前缀形式出现,也可以后缀形式出现
- 对于变量来说自增或自减1;对于表达式来说,前置先自增后使用变量值,后置先使用变量值再自增
- 结合方向:从右至左
逗号运算符
- 结合方向:从左至右
- 逗号运算符优先级最低