C语言运算符

目录 1.运算符相关术语 2.运算符示例 3.运算符优先级表 1. 运算符相关术语1.1 操作数(operand): 程序操作的数据实体,该数据可以是数值、逻辑值或其他类型。该操作数既可以是常量也可以是变量。1.2 运算符...

目录

1.运算符相关术语
2.运算符示例
3.运算符优先级表

1. 运算符相关术语

1.1 操作数(operand):

    程序操作的数据实体,该数据可以是数值、逻辑值或其他类型。该操作数既可以是常量也可以是变量。

1.2 运算符(operator):

    ①. 可以对数据进行相应操作的符号。比如对数据求和操作,用加法运算符“ + ”,求积操作使用乘法运算符“ * ”等。
    ②. 根据运算符可操作的操作数的个数,可把运算符分为一元运算符(单目运算符)、二元运算符(双目运算符)和 多元运算符(C语言中只有一个三元运算符(? :),三目运算符)。
    ③.C语言提供了丰富的运算符:算法运算符、关系运算符、逻辑运算符、赋值运算符、移位运算符、逗号运算符及sizeof运算符等。

1.3 左值(lvalue)和右值(rvalue)

    ①. 按字面意思说,以赋值符号=为界,=左边的就是左值,=右边的就是右值。
    ②. 更深一层说,L-value的L可以理解为Location,表示可寻址。R-value中的R指的是Read,表示可读。

2. 运算符示例

2.1 取模(余数)%

①. 示例一:计算最大公约数

#include <stdio.h>
#include <math.h>

/**
* 示例一
* 计算最大公约数 函数法
* 欧几里得算法 辗转相除法
* 计算原理:gcd(a,b) = gcd(b,a mod b)
*/

int gcd(int a, int b)
{
	int c = a % b;
	while (c != 0)
	{
		a = b;
		b = c;
		c = a % b;
	}
	return b;
}

int main()
{
	int a = 0;
	int b = 0;
	printf("请输入两个整数:");
	scanf_s("%d,%d", &a, &b);
	int c = gcd(a, b);
	printf("最大公约数为:%d\n", c);
	return 0;
}

运行结果:

②. 示例二:循环输出26个英文字母

#include<stdio.h>

/**
* 示例二 
* 输出26个英文字母,形成循环输出
*/

int main()
{
	char str[] = { "abcdefghijklmnopqrstuvwxyz" };
	for (int i = 0; i < 26; ++i)		//行
	{
		int k = i;
		for (int j = 0; j < 26; ++j)    //列 只能打印26次
		{
			printf("%c", str[k]);
			k = (k + 1) % 26;			//将k循环遍历
		}
		printf("\n");
	}
	return 0;
}

运行结果:

2.2 * =运算

③. 示例三:* =运算

#include<stdio.h>

/**
*  *= 运算
*/

int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	printf("请输入三个数:");
	scanf_s("%d,%d,%d", &a, &b, &c);
	a *= b + c;				//+ 的优先级高于 * 所以先算 + 再算 *
	printf("%d\n", a);
	return 0;
}

运行结果:

2.3 三目运算

④. 示例四:三目运算

#include<stdio.h>

/**
* 三目运算符
*/
int main()
{
	int a = 0;
	int b = 0;
	int c = 0;
	printf("请输入两个数:");
	scanf_s("%d,%d", &a, &b);
	c = a < b ? a : b;			//输入a,b两个数 如果a < b 则输出a,否则输出b
	printf("c = %d\n", c);
	return 0;
}

运行结果:

2.4 前置++与后置++的区别

⑤. 示例五: 前置++与后置++的区别

#include <stdio.h>

/**
* 前置++与后置++的区别
*/
int main()
{
	int a = 0;
	int b = 0;
	int c1,c2 = 0;
	c1 = a++;   	//后置++先赋值,后+1
	c2 = ++b; 		//前置++先+1,后赋值
	printf("c1=%d,c2=%d\n",c1,c2);
	return 0;
}

运行结果:

3. 运算符优先级表

本文标题为:C语言运算符

基础教程推荐