【初识C语言(4)】操作符

news2024/12/25 9:06:38

文章目录

  • 1. 算术操作符
  • 2. 移位操作符
  • 3. 位操作符
  • 4. 赋值操作符
  • 5. 单目操作符
  • 6. 关系操作符
  • 7. 逻辑操作符
  • 8. 条件操作符
  • 9. 逗号表达式
  • 10. 下标引用、函数调用和结构成员

1. 算术操作符

+	-	*	/	%
  • 加 减 乘 除 求余
    • 加减乘 都很简单没啥可讲的,这里主要讲解 求余

1. 算术操作符 “ / ”

  • 除法是用来求商的;

在这里插入图片描述

  • 除号的两断都是整数的时候,执行的是整数除法,两端只要有一个浮点数就执行浮点数的除法。

在这里插入图片描述

2. 算术操作符 “ % ”

  • 两个数相除,得到的结果为余数

在这里插入图片描述

  • 注意:与 “ / ” 不同,“ % ” 的两边必须是整数

在这里插入图片描述

2. 移位操作符

<<	>>

1. 左移操作符 “ << ”
2. 右移操作符 “ >> ”

3. 位操作符

&	|	^

1. 按位与 “ & ”
2. 按位或 “ | ”
3. 按位异或 “ ^ ”

4. 赋值操作符

=	+=	-=	*=	/=	&=	^=	|=	>>=	<<=

1. 赋值 “ = ”

  • 给变量赋予一个值;
#include <stdio.h>

int main()
{
	int a = 0;//初始化
	a = 20;//赋值

	return 0;
}

2. 加等 “ += ”

  • 单纯只是形式的简化而已,后面的也一样;
#include <stdio.h>

int main()
{
	int a = 0;

	a = a + 3;
	a += 3;//同上等价,意思一样,写法不同而已

	return 0;
}

3. 减等 “ -= ”

  • 后面的 “ /= ” ,“ *= ” 之类的和这些都是依葫芦画瓢。
#include <stdio.h>

int main()
{
	int a = 0;

	a = a - 3;
	a -= 3;//同上等价,形式简化

	return 0;
}

5. 单目操作符

  • 只有一个操作数的操作符称之为单目操作符
操作符操作符名
!逻辑反操作
-负值
+正值
&取地址
sizeof操作数的类型长度(以字节为单位)
~对一个数的二进制进行按位取反
- -前置、后置- -
++前置、后置++
*间接访问操作符(解引用操作符)
(类型)强制类型转换

1. 逻辑反 “ ! ”

  • C 语言中, 0 表示假,非 0 表示真。
  • 作用:真变假,假变真:将非零的值转为零,将零转为非零的值。

在这里插入图片描述

2. 负值 “ - ”

  • 就是数学意义上的添负号;

在这里插入图片描述

3. sizeof

  • 计算操作数所占内存的大小;

在这里插入图片描述

4. 前置、后置 ++

  • 对于某个变量本身来说,++ 前置、后置关系都不大,都相当于是变量的值自增 1 ;
  • 但是如果要将值赋给其他变量的时候,区别就来了:
    • 前置++(++变量名):先让该变量的值+1,再使用自增1之后的变量;
    • 后置++(变量名++):先使用该变量的值,再让该变量的值+1。

在这里插入图片描述

5. 前置、后置 - -

  • 前置、后置 - - 和 前置、后置 ++ 原理相同,就不过多赘述了。

6. 强制类型转换

//强制类型转换

#include <stdio.h>

int main()
{
	int a1 = 3.14;
	//3.14 为字面浮点数,默认为 double 类型,
	//所以不能赋给整形变量 a1 ,需要进行强转

	int a2 = (int)3.14;//将 3.14 强转为整型然后赋给 a2 

	printf("%d\n", a2);//打印结果为 3,舍掉了小数点后的数

	return 0;
}

6. 关系操作符

  • 用来比较两者之间的大小关系的操作符
>		大于
>=		大于等于
<		小于
<=		小于等于
!=		不等于
==  	等于
  • 注意:两个等于号才是判断两数是否相等;
#include <stdio.h>

int main()
{
	int a = 10;

	if (a = 3)//只有一个等号是赋值,表达式永远为真
	{
		printf("判断条件永远为真,这段话永远能打印出来\n");
	}

	if (a == 4)
	{
		printf("在第一个 if 中 a 被改成了 3 所以这里用 a 是否等于 4 来判断\n");
	}
	return 0;
}

在这里插入图片描述

7. 逻辑操作符

&&		逻辑与(并且)
||		逻辑或(或者)

1. 逻辑与 “ && ”

  • 全真则真,作用的两个操作数全部都为真整个表达式才为真。
//逻辑与

#include <stdio.h>

int main()
{
	int a = 10, b = 20;

	if (a && b)//a 和 b 的值都得为真,表达式才为真
	{
		printf("逻辑与:全真则真\n");
	}

	a = 0;
	if (a && b)//a 的值为假,整个表达式都为假
	{
		printf("&& 两端有一个不为真就进不来\n");
	}

	return 0;
}

在这里插入图片描述

2. 逻辑或 “ || ”

  • 全假则假,作用的两个操作数全部都为假整个表达式才为假。
//逻辑或

#include <stdio.h>

int main()
{
	int a = 0, b = 20;

	if (a || b)//a 和 b 两个只要有一个为真,表达式就为真
	{
		printf("逻辑或:全假则假\n");
	}

	b = 0;
	if (a || b)//只有 a 和 b 全为假,表达式的值才为假
	{
		printf("|| 两端全是假才进不来这里\n");
	}

	return 0;
}

在这里插入图片描述

8. 条件操作符

  • C 语言中唯一的一个三目操作符(有三个操作数)。
exp1 ? exp2 : exp3
  • 判断表达式1(exp1)的值是否为真,为真则执行表达式2(exp2),为假执行表达式3(exp3)。

举个栗子

  • 题目:利用三目操作符求 4 个数中得最大值。
    • 没想到用这个之前算这种题 if 用的我头皮发麻。
//三目操作符

#include <stdio.h>

int main()
{
	//利用三目操作符求 4 个数中得最大值

	int a, b, c, d;
	scanf("%d %d %d %d", &a, &b, &c, &d);

	int x = a > b ? a : b;//a 如果大于 b 则将 a 赋给 x 反之将 b 赋给 x 
	int y = c > d ? c : d;//同上

	printf("最大值为:%d\n", x > y ? x : y);
	
	return 0;
}

在这里插入图片描述

9. 逗号表达式

exp1, exp2, exp3, …expN
  • 由逗号隔开的一串表达式称为逗号表达式。
  • 特点:从左至右依次计算,整个表达式的结果是最后一个表达式的结果。
//逗号表达式

#include <stdio.h>

int main()
{
	//从左至右依次计算,整个表达式的结果是最后一个表达式的结果

	int a = 10, b = 20, c = 0;

	int d = (c = a - 2, a = b + c, c - 3);
	//		 c = 8      a = 28     5

	printf("d = %d\n", d);
	return 0;
}

在这里插入图片描述

10. 下标引用、函数调用和结构成员

[] () . ->

1. 下标引用 “ [ ] ”

  • 当我们访问数组元素的时候必须要用到下标,这个操作符就是用在这了。
//下标引用 “[]”

#include <stdio.h>

int main()
{
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };

	arr[3] = 100;//此处的[]就是下标引用操作符,
	//arr 和 3 就是 [] 的操作数

	return 0;
}

2. 函数调用 “ ( ) ”

//函数调用操作符 “( )”

#include <stdio.h>

int Add(int x, int y)
{
	return x + y;
}

int main()
{
	int sum = Add(2, 3);
	//这里的 () 就是函数调用操作符,Add,2,3 都是 () 的操作数

	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/676085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx主配置文件及实操

文章目录 一、nginx主配置文件nginx.conf1.认识nginx服务的主配置文件2.全局配置3.I/O事件配置4.HTTP配置&#xff15;.检查配置文件是否正确&#xff16;.浏览器测试 二、实战操作1.nginx的访问状态统计2.基于授权的访问控制&#xff1a;3.基于客户端访问设置&#xff08;设置…

驱动开发:内核中进程与句柄互转

在内核开发中&#xff0c;经常需要进行进程和句柄之间的互相转换。进程通常由一个唯一的进程标识符&#xff08;PID&#xff09;来标识&#xff0c;而句柄是指对内核对象的引用。在Windows内核中&#xff0c;EProcess结构表示一个进程&#xff0c;而HANDLE是一个句柄。 为了实…

【跑实验04】CLIP安装报错,setup.py如何安装,图像编码器(image_encoder)的使用(含源代码)

文章目录 一、如何解决CLIP安装报错二、setup.py如何安装&#xff1f;三、图像编码器(image_encoder)的使用 一、如何解决CLIP安装报错 我第一次尝试安装CLIP&#xff0c;采用的方法是pip的方法&#xff1a; pip install clip但是安装后&#xff0c;无法使用&#xff1a; 明确…

代码随想录二刷 day31 | 贪心之 理论基础 455.分发饼干 376. 摆动序列 53. 最大子序和

day31 理论基础什么是贪心贪心算法的套路一般解题步骤 455.分发饼干376. 摆动序列情况一&#xff1a;上下坡中有平坡情况二&#xff1a;数组首尾两端情况三&#xff1a;单调坡度有平坡 53. 最大子序和 理论基础 什么是贪心 贪心的本质是选择每一阶段的局部最优&#xff0c;从…

vue3基础 ---- 上

目录 一.vue3介绍 1. 官网初识 2.环境搭建 2-1 线上尝试 2-2 CDN使用 2-3 Vue CLI 2-4 Vite 二.vue3基础 1.模板语法 1-1 我的第一个vue应用 1-2 应用背后的真相 1-3 模板语法-新的皮肤来了 1-4 Todolist-来个案例 1-5 点击变心案例 - 是变色 1-6 v-html- 模板…

【libdatachannel】pycharm运行streamer的信令服务及streamer与js客户端本机联调2

后面与ws服务器一直有ping pong2023-06-23 10:30:27.915 VERB [24456] [rtc::impl::PollService::runLoop@178] Entering poll, timeout=10000ms 2023-06-23 10:30:27.916 VERB [24456] [rtc::impl::PollServ

有了电脑怎么搞?我有办法(第一部分)-涵子的个人想法

上一次会选电脑后&#xff0c;今天我们来学习一下电脑的整理方法。今天满满的都是干货&#xff0c;请仔细阅读&#xff01;注意粗体内容。 目录 一、磁盘太乱咋整&#xff1f; 1.1.磁盘是个啥&#xff1f;为啥乱&#xff1f; 1.2.分区怎么分&#xff1f; 1.3.还是分不清怎…

Java类加载机制:从字节码到对象的奇妙之旅

目录 什么是类加载机制&#xff1f; 类加载顺序 类加载顺序图 双亲委派模型 双亲委派模型示意图 如何打破双亲委派模型&#xff1f; 要想学好java&#xff0c;首先得知道它是什么&#xff0c;怎么运行的&#xff0c;怎么加载的&#xff0c;运行的是个什么东西&#xff0c…

JVM内存模型及JAVA程序运行原理

文章目录 JVM简介JVM的内存结构方法区堆栈程序计数器 JAVA程序在JVM内是如何执行的 JVM简介 JVM------Java Virtual Machine.JVM是Java平台的基础&#xff0c;与实际机器一样&#xff0c;它有自己的指令集&#xff08;类似CPU通过指令操作程序运行&#xff09;&#xff0c;并在…

Temu、shopee、Lazada、Newegg、美客多销量增长黑科技!

在跨境电商的激烈竞争环境下&#xff0c;2023年伴随着疫情的解封&#xff0c;电商业务重新焕发生机。卖家们不应该只在一个平台投放所有资源&#xff0c;而应多元化地进行平台选择。实际上&#xff0c;许多小型电商平台如Wish、敦煌等也能带来大量业务&#xff0c;而且竞争压力…

如何保证API接口的安全性

API接口的安全性是非常重要的&#xff0c;以下是一些保证API接口安全性的措施&#xff1a; 用户认证、授权&#xff1a;接口的调用者必须提供有效的身份认证信息&#xff0c;包括用户名、密码、密钥等&#xff0c;以保证接口的调用者的身份有效性。同时&#xff0c;需要在接口的…

亚马逊云科技中国峰会:Amazon DeepRacer——因构建 而可见

文章目录 一、前言二、 亚马逊云科技中国峰会大会亮点三、Amazon DeepRacer 赛事火热开启四、Amazon DeepRacer 深度体验五、2023亚马逊云科技中国峰会——Amazon DeepRacerAmazon DeepRacer 中国峰会总决赛Girls in Tech Show高校联动&#xff0c;寻找未来“生力军”Amazon De…

电赛汇总(三):常用传感器电路模块设计

电赛汇总(三)&#xff1a;常用传感器电路模块设计 这一章节主要详细记录各种常用的传感器的电子芯片型号、设计原理与思想&#xff0c;以便随时查看翻阅。这部分内容出自黄根春等学者著的《全国大学生电子设计竞赛教程》一书中&#xff0c;感兴趣的朋友可以购买翻阅。 文章目…

Debian12编译安装R软件

1.解压源码包 2.运行./configure --prefix/usr/local/R-4.3 报错&#xff0c;没有安装fortran编译器 3.运行./configure --prefix/usr/local/R-4.3 4.运行./configure --prefix/usr/local/R-4.3 5.运行./configure --prefix/usr/local/R-4.3 6.运行./configure --pref…

厦门大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 厦门大学&#xff08;B&#xff09;考研难度&#xff08;☆☆☆☆☆&#xff09; 厦门大学计算机考研主要招生学院有信息学院、人工智能研究院、医学院和电影学院。目前均已出拟录取名单。 厦门大学信息学院&#xff…

14. WebGPU 透视投影

在上一篇文章中&#xff0c;介绍了如何制作 3D &#xff0c;但 3D 没有任何透视效果。它使用的是所谓的“正交”视图&#xff0c;它有其用途&#xff0c;但通常不是人们说“3D”时想要的。 现在&#xff0c;需要添加透视图。究竟什么是透视&#xff1f;基本特征就是离得越远的…

牛客网基础语法71~80题

牛客网基础语法71~80题&#x1f618;&#x1f618;&#x1f618; &#x1f4ab;前言&#xff1a;今天是咱们第八期刷牛客网上的题目。 &#x1f4ab;目标&#xff1a;可以掌握循环嵌套&#xff0c;可以采用一些数组来解决问题&#xff0c;对循环知识掌握熟练&#xff0c;对数学…

H5套壳微信小程序跳转H5以及配置服务器接口域名和业务域名

一、H5套壳微信小程序跳转H5 基本语法&#xff1a; <web-view src"https://你的域名"></web-view> 1. 其中&#xff0c;url必须在管理后台加进业务域名&#xff0c;并且是https开头的。 使用了web-view&#xff0c;页面将不能放置其他元素&#xff0c…

【深度学习】RepVGG解析和学习体会,结构重参数化的后的速度比较,代码实现

文章目录 前言0. Vgg1.RepVGG Block 详解 前言 论文名称&#xff1a;RepVGG: Making VGG-style ConvNets Great Again 论文下载地址&#xff1a;https://arxiv.org/abs/2101.03697 官方源码&#xff08;Pytorch实现&#xff09;&#xff1a;https://github.com/DingXiaoH/RepV…

linux动态监控进程懂了没?

这里写目录标题 top交互模式监控网络状态 top top与ps类似&#xff0c;他们都是用来显示正在执行的进程。 两者最大的不同之处就是top在执行一段时间可以更新正在运行的进程。 基本语法&#xff1a; top 选项 选项功能-d 秒数指定top指令每隔几秒更新&#xff0c;默认为3秒-i…