C语言简明教程(七)(运算符、表达式和语句)

接上一节字符串、常量和格式化输入输出实例详解
本文主要讨论C语言中的运算符、表达式和语句,其中还讨论到一些重点的内容,如类型转换、自动类型转换和强制类型转换,以及C语言函数的正确使用方式。

C语言简明教程(七)(运算符、表达式和语句)

文章图片
一、C语言运算符1、基本运算符
C语言的基本运算符如下所示:
运算符 说明
赋值运算符= 数据对象:存储值的数据区域 左值:标识数据对象的名称 将值赋给数据对象
加法运算符+ 两个数据对象之间的加法运算
减法运算符- 两个数据对象之间的减法运算
除法运算符/ 除法运算 正整数除法:舍弃小数部分 负整数除法:向0靠近 浮点数除法:保留小数部分
乘法运算符* 两个数据对象之间的乘法运算
C语言运算符优先级如下:
运算符 结合律
一元加减法运算符+- 从右到左边
乘除法运算符*/ 从左边到右边
二元加减法运算符+- 从左边到右边
赋值运算符= 从右到左边
() 从左边到右边
使用运算符实例代码如下:
int basic = 45; // 使用赋值运算符 int current = 80; printf("+: %-10d-: %-10d\n", current + basic, current - basic); // 使用加法、减法运算符 int width = 400; int height = 800; float rgb = 18.9f; printf("*: %-10d\\: %-10f\n", width * height, rgb / width); // 使用乘法、除法运算符

2、其它运算符
运算符 说明
sizeof运算符 1、用于计算数据对象的大小,包括计算变量和类型的大小,返回类型为size_t。 2、typedef用于创建类型别名,size_t的定义类似: typedef unsigned int size_t 3、size_t编译器根据系统的不同替换相应的标准类型
求模运算符% 取余
递增运算符++ 分为前自增和后自增,两者的区别主要体现在表达式多个变量的运算中: 1、前自增++var,var先加1再进行表达式运算 2、后自增var++,先进行表达式运算,后再加1
递减运算符– 分为前自减– var和后自减var– ,类似递增运算符
强制类型运算符() 强制转换类型
其中类型转换分为自动类型转换和强制类型转换:
1、自动类型转换:主要发生在混合类型计算的情况下,如果是表达式运算,进行升级类型转换,如char short转为int或者unsigned int,在表达式运算中都是较小类型转为较大类型。
如果是两种类型的运算,分别转换成两种类型的更高级别类型。
如果是函数参数传递,float转为double运算,char或short转为int。
如果是赋值语句,有可能会强制降级,主要看左值的数据类型是否低于右边值的数据类型。
自动类型转换一般不太安全,在开发中尽量使用相同类型进行运算,或者使用枪支类型转换。
2、强制类型转换:使用强制类型运算符(),例如(int)3.14,将浮点数3.14强制转为int类型,转化后的值为3。
使用运算符实例代码如下:
// 1、sizeof运算符 size_t size = sizeof(float); // sizeof运算符,返回float类似的大小 printf("size: %10u\n", size); // => 4// 2、%取模运算符 int mod = 8%3; // %取模运算符,返回8除以3的余数 printf(" mod: %10d\n", mod); // => 2// 3、自增自减运算符 int value = http://www.srcmini.com/3; // 在不参与多个变量表达式的运算中,前后自增或自减没什么区别 value++; value--; ++value; --value; printf(" val: %10d\n", value); // => 3// 参与其它变量的表达式运算,前自增自减和后自增自减的效果不同 int number = ++value; // 前自增,先自增后表达式运算,此时value的值为4 printf(" num: %10d\n", number); // => 4 number = value++; // 后自增,value先参与表达式运算,后自增,value的值为5,value赋给number的是4 printf("value: %-10d number: %-10d\n", value, number); // => 5 4// 4、()强制类型运算符 float pi = 3.14; int PI = (int)pi; printf("%d\n", PI); // => 3

二、表达式和语句表达式由运算符和数据对象组成,例如a+b是一个表达式,表达式后加分号成为表达式语句,注意变量或函数声明不是语句,在C语言中它仅仅是一个声明,语句是C程序的最基本单元,常见的语句有赋值表达式语句var = 4,函数表达式语句,例如调用printf函数,空语句一个分号。符合语句块由一对花括号括起来,包含一条或多条语句。
注:C语言其中有两个专有名词,副作用和序列点,副作用的意思是对数据对象或文件的修改,序列点是程序的执行点,以及完整的表达式的结束。(不用太关系这个,不大影响编程)
在C语言中语句主要集中在函数或其它一些语句块中,C语言函数的标准使用:首先需要进行函数原型的声明,然后进行函数定义实现,在项目开发中,函数原型声明一般放在自定义.h头文件中,函数实现放在.c源文件中。
【C语言简明教程(七)(运算符、表达式和语句)】C语言语句和函数的代码实例如下:
// 函数原型声明 void run(char *message); int main() { char *message = "shall we talk"; // 赋值语句 if(strlen(message) > 4){ // 比较表达式 run(message); // 调用函数语句 } return 0; }// 函数实现 void run(char *message){ printf("running: %s\n", message); // 调用函数语句 }

    推荐阅读