接上一节字符串、常量和格式化输入输出实例详解
本文主要讨论C语言中的运算符、表达式和语句,其中还讨论到一些重点的内容,如类型转换、自动类型转换和强制类型转换,以及C语言函数的正确使用方式。
文章图片
一、C语言运算符1、基本运算符
C语言的基本运算符如下所示:
运算符 | 说明 |
赋值运算符= | 数据对象:存储值的数据区域 左值:标识数据对象的名称 将值赋给数据对象 |
加法运算符+ | 两个数据对象之间的加法运算 |
减法运算符- | 两个数据对象之间的减法运算 |
除法运算符/ | 除法运算 正整数除法:舍弃小数部分 负整数除法:向0靠近 浮点数除法:保留小数部分 |
乘法运算符* | 两个数据对象之间的乘法运算 |
运算符 | 结合律 |
一元加减法运算符+- | 从右到左边 |
乘除法运算符*/ | 从左边到右边 |
二元加减法运算符+- | 从左边到右边 |
赋值运算符= | 从右到左边 |
() | 从左边到右边 |
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);
// 调用函数语句
}
推荐阅读
- C语言简明教程(八)(循环语句实例详解)
- 如何使用v-for循环图片路径
- 限制element-ui 表格显示行数
- vue.js实现分页查询
- vue.js的组件和模板
- C语言简明教程(六)(字符串、常量和格式化输入输出实例详解)
- C语言遍历数组的两种方式
- 巫师故事3(狂猎的背后故事)
- 英雄传说(北美公布冷钢之路IV)