C语言操作符汇总

article/2025/9/13 1:38:11

目录

一、算术操作符

二、移位操作符

三、位操作符

四、赋值操作符

五、单目操作符

六、关系操作符

七、逻辑操作符

八、条件操作符

九、逗号表达式

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


C语言的操作符分为以下10种:

算术操作符移位操作符
位操作符赋值操作符
单目操作符关系操作符
逻辑操作符条件操作符
逗号表达式下标引用、函数调用和结构成员

一、算术操作符

+-*/%

1.+ - * / 操作符可以作用于整数和浮点数;

2.%操作符只能用于两个整数之间,返回的是整除之后的余数;

3./ 操作符则是根据两操作数类型进行除法,如两个操作数是整型,执行整数除法,如果两数为浮

点型,则执行浮点数除法。

二、移位操作符

<< 左移操作符>> 右移操作符

1.左移操作符

移位规则: 左边抛弃、右边补0

2.右移操作符

右移运算分两种:

(1)逻辑移位 :左边用0填充,右边丢弃

(2)算术移位 :左边用原该值的符号位填充,右边丢弃

注意!注意!⚠     不能移动负数位!

三、位操作符

&|^

&:按位与(有0为0)

| :按位或(有1为1)

^:按位异或(相同为0,不同为1)

(位运算是通过补码进行计算的)

#include <stdio.h>
int main()
{int num1 = 1;int num2 = 2;int a,b,c;a = num1 & num2;b = num1 | num2;c = num1 ^ num2;return 0;
}

 

四、赋值操作符

可将未定义变量进行赋值,也可以将之前的改掉。

int x = 0;
x = 10;

复合赋值符 

+=*=%=<<=|=
-=/=>>=&=^=
int x = 10;
x = x+10;
x += 10;

五、单目操作符

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

 !(逻辑反操作):

int a = 0;
while(!a)
{
//语句
}
//!a为真,while进入死循环

 &(取地址):

int p=1;
int *a=NULL;
a=&p;

 sizeof (操作数的类型长度(以字节为单位)):

int a = 10;
printf("%d\n", sizeof(a));//长度为4字节
printf("%d\n", sizeof(int));//长度为4字节
printf("%d\n", sizeof a);//长度为4字节
printf("%d\n", sizeof int);//写法错误,求类型长度不能将括号去掉

~(对一个数的二进制按位取反):

 前置++和 --

#include <stdio.h>
int main()
{int a = 10;int x = ++a;//先对a进行自增,然后对使用a,也就是表达式的值是a自增之后的值。x为11。int y = --a;//先对a进行自减,然后对使用a,也就是表达式的值是a自减之后的值。y为10;return 0;
}

后置++和 --

#include <stdio.h>
int main()
{int a = 10;int x = a++;//先对a先使用,再增加,这样x的值是10;之后a变成11;int y = a--;//先对a先使用,再自减,这样y的值是11;之后a变成10;return 0;
}

六、关系操作符

>>=!=
<<===

判断两数是否相等是==,=是赋值操作符,注意不要用错

要注意的是==与=之间的区别,不要混淆

七、逻辑操作符

&&逻辑与
||逻辑或

&&:只要句中有一个表达式为假,这一个之后的表达式将不再执行

||:只要句中有一个表达式为真,这一个之后的表达式将不再执行

要区分逻辑与&&按位与&之间的区别逻辑或||按位或|之间的区别

1 & 2 = 0;
1 && 2 = 1;1 | 2 = 3;
1 || 2 = 1;

八、条件操作符

exp1 ? exp2 : exp3

exp1是判断条件,为真执行exp2,为假执行exp3

九、逗号表达式

exp1, exp2, exp3, …expN

逗号表达式,就是用逗号隔开的多个表达式。

逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。

int a = 1;
int b = 2;
int c = (a>b, a=b+10, a, b=a+1);//a=12      b=12+1=13

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

1.[ ] 下标引用操作符

操作数:一个数组名 + 一个索引值

int arr[10];//创建数组arr[6] = 1;//实用下标引用操作符。//[ ]的两个操作数是arr和6。

2.( ) 函数调用操作符

接受一个或者多个操作数:第一个操作数是函数名,剩余的操作数就是传递给函数的参数。

void test()
{printf("Lumos\n");
}int main(){test();  //实用()作为函数调用操作符。return 0;}

3.访问一个结构的成员

. 结构体.成员名

-> 结构体指针->成员名

#include <stdio.h>
struct Stu
{char name[10];int age;char sex[5];
};int main()
{struct Stu s = {"zhansan", 20, '男'};struct Stu* p = &s;printf("%s %d %c\n",s.name,s.age,s.sex);printf("%s %d %c\n",p->name,p->age,p->sex);
//以上两句所表达的含义均是结构成员访问return 0;
}

http://chatgpt.dhexx.cn/article/L2n58ChG.shtml

相关文章

python 操作符

1.注释: 三种 # " " " 2.输入输出 输出:print() 输入input() 3.变量 保存数据的,就是一个容器 变量名 值 修改变量的值:变量名 新值 *变量的命名: a-z A-Z 0-9 _ 注意:不能以数字开头,就以字母开头就好,_有特殊的作用,不能使用关键字 关键字: …

VHDL的操作符

一、赋值操作符 作用在于更新被赋值数据对象的值&#xff0c;数据对象主要是指信号和变量。VHDL赋值操作符也有信号赋值与变量赋值的区别&#xff0c;分别是&#xff1a; ”<"是信号赋值操作符&#xff0c;可以对标量型的信号类型对象或是矢量型信号类型对象整体赋值…

操作符详解(C语言)

目录 算术操作符(运算符)&#xff1a; - * / % 1、/ &#xff08;除法&#xff09; 2、% (取模、取余&#xff09; 移位操作符&#xff1a; << (左移&#xff09; >>(右移&#xff09; 注意&#xff1a;移位操作符的操作数只能是整数 1、<< …

Java中的类变量和实例变量的区别

类变量也叫静态变量&#xff0c;也就是在变量前加了static 的变量&#xff1b; 实例变量也叫对象变量&#xff0c;即没加static 的变量&#xff1b; 区别在于&#xff1a; 类变量和实例变量的区别在于&#xff1a;类变量是所有对象共有&#xff0c;其中一个对象将它值改变&…

python面向对象类变量的调用和改变

python中对类变量的访问 在python中对类变量的访问有两种方式 方式一&#xff1a;使用类名.变量名 方法二&#xff1a;使用对象名. 变量名 注意&#xff1a;但在使用方法二时&#xff0c;需要注意&#xff0c;在当前对象中是否具有与类变量同名的实例变量&#xff0c;若没有&am…

如何理解Java的类变量、成员变量、常量、类属性、实例属性、字段(field)、成员方法、类方法

文章目录 变量相关概念变量/常量类变量/静态变量成员变量/实例变量类属性/实例属性/对象属性什么是 field 成员变量和类变量的区别两个变量的生命周期不同访问方式不同数据存储位置不同 方法相关概念示例代码判断题 变量相关概念 变量/常量 所谓变量就是指可以改变的数据量&a…

第7.12节 可共享的Python类变量

第7.12节 可共享的Python类变量 一、 引言 在上节已经引入介绍了类变量和实例变量&#xff0c;类体中定义的变量为类变量&#xff0c;默认属于类本身&#xff0c;实例变量是实例方法中定义的self对象的变量&#xff0c;对于每个实例都是独有数据&#xff0c;而类变量是该类…

Java基础---类变量和实例变量

类变量和实例变量 成员变量&#xff1a;把类内、方法体外的变量称为成员变量。 package com.chen.offer.BiliBili;/*** author chenshimiao* Email 16622880228163.com* date 2022/2/18 10:27 下午** 区分成员变量 实例变量和类变量*/ public class Clothes {//实例变量Strin…

什么是类变量,什么是实例变量,它们之间有什么区别?

了解术语很重要。实例变量和类变量都是成员变量。它们都是成员变量&#xff0c;因为它们都与特定类相关联。但是&#xff0c;实例变量和类变量之间存在差异。 实例变量 实例变量属于类的实例。换句话说&#xff0c;实例变量属于对象&#xff0c;因为对象是类的实例。每个对象都…

Java类变量的初始化

目录 两个必须的知识点 字节码指令验证 结果分析 非法前向引用变量 最近在学JVM&#xff0c;在学到类的初始化的时候明白了以前不是很理解的类中静态变量的初始化的过程&#xff0c;如果你也对静态变量的初始化有所困扰或者如下图的输出结果有所疑惑&#xff0c;相信你看完…

如何使用Arthas查看类变量值

使用arthas查看类变量值核心思路是&#xff1a;通过实现ApplicationContextAware接口定义ApplicationUtil类&#xff0c;该类可以获取ApplicationContext的所有的Bean实例&#xff0c;然后通过arthas的ognl查看类实例中的属性值。 搭建简易Spring Boot工程 1. pom依赖 <?…

类变量(静态变量),静态方法(类方法)快速了解一篇足矣

什么是类变量&#xff1f; 类变量也叫静态变量&#xff0c;静态属性&#xff0c;是该类所有对象共享的变量&#xff0c;任何一个该类的对象去访问他时&#xff0c;取到的值都是相同的值&#xff0c;同样任何一个该类对象 去修改他时&#xff0c;修改的也是同一个变量。 如何定…

VS 关于 .sln 文件和 .suo 文件

Visual Studio.NET采用两种文件类型&#xff08;.sln和.suo&#xff09;来存储特定于解决方案的设置,它们总称为解决方案文件。为解决方案资源管理器提供显示管理文件的图形接口所需的信息&#xff0c;从而在每次继续开发任务时&#xff0c;不会因开发环境而分散精力&#xff1…

Linux命令ln -snf给文件创建软链接和硬链接

我们知道 ln 命令用于创建链接文件,ln命令的参数选项有很多,此处主要理解 -snf三个: -s:--symbolic比较容易,有-s时表示创建软连接,没有-s时,表示创建硬链接 -f:--force 强行删除任何已存在的目标文件 -n:--no-dereference 把符号链接的文件视为一般文件 一、创建软链…

Visual studio中.sln、.ncb、.rc、.sdf、.def、.vcproj等后缀文件解释

.sln 解决方案文件 Visual Studio使用解决方案文件(后缀为sln的文件)表示一个项目组&#xff0c;它通常包含一个项目中所有的工程文件信息。 .ncb 无编译浏览文件 无编译浏览文件&#xff1a;其中存放了供ClassView、WizardBar和Component Gallery使用的信息&#xff0c;由VC开…

凸函数的性质、判定,凸规划

一. 凸函数的性质 二. 凸函数的判别 判断一个函数是否为凸函数&#xff0c;最基本的方法是使用其定义。 对可微函数&#xff1a; 三、凸规划定义 最优化问题的目标函数为凸函数&#xff0c;不等式约束函数也为凸函数&#xff0c;等式约束函数是仿射的&#xff0c;则称该最优化问…

不等式约束问题-KKT条件 (1)

允许不等式约束的KKT条件&#xff08;卡罗需-库恩-塔克条件&#xff0c;Karush-Kuhn-Tucker Conditions&#xff0c;有时称为一阶必要条件&#xff09;是对只允许等式约束的拉格朗日乘数法的推广。 定义一个优化问题如下&#xff0c;该最优问题既有等式约束&#xff0c;又有不…

《统计学习方法》—— SVM(线性可分支持向量机、线性支持向量机、非线性支持向量机)的详细推导

前言 支持向量机是定义在特征空间上使得间隔最大的线性分类器。它可以形式化为凸二次规划问题。对于这样的凸二次规划问题&#xff0c;我们往往使用拉格朗日方法转为为它的对偶问题。对于这样的对偶问题&#xff0c;我们可以使用SMO最小序列算法进行求解。 我们将介绍三种支持…

深度学习核心技术精讲100篇(十三)-线性可分支持向量机中KKT最有条件理解

前言 KKT最优化条件是Karush[1939],以及Kuhn和Tucker[1951]先后独立发表出來的。这组最优化条件在Kuhn和Tucker发表之后才逐渐受到重视,因此许多情况下只记载成库恩塔克条件(Kuhn-Tucker conditions) 库恩塔克条件(Kuhn-Tucker conditions)是非线性规划领域里最重要的理论…

拉格朗日函数对偶问题、KKT条件

一、概念介绍 KKT最优化条件是Karush(1939)以及Kuhn和Tucker(1951)先后独立发表出来的&#xff0c;但在Kuhn和Tucker发表之后才逐渐受到重视&#xff0c;因此多数情况下记载成库恩-塔克条件(Kuhn-Tucker conditions)。先介绍几个优化的概念。 1.1 优化 最优化问题&#xff0…