首页 > 其他分享 >C语言常见操作符(补充)

C语言常见操作符(补充)

时间:2024-07-25 21:53:27浏览次数:7  
标签:变量 示例 int 常见 C语言 -- 操作符 printf

前言:

在这篇文章中,我们将会认识到更多的C语言操作符,并通过简单的介绍和相应的代码,来更好的了解它们。

位操作符:

位操作符在计算机中以二进制的形式,进行运算。

& 按位与                                          | 按位或                                                              ^ 按位异或

操作符

名称

作用

&

按位与

两个数同时为1,结果才为1。

|

按位或

两个数同时为0,结果才为0。

^

按位异或

两个数相等,结果为0。两个数相异,结果为1。

示例代码:

//位操作符
#include <stdio.h>
int main()
{
	int number1 = 6;
	int number2 = 8;
	printf("number1 & number2 = %d\n", number1 & number2);
	printf("number1 ^ number2 = %d\n", number1 ^ number2);
	printf("number1 | number2 = %d\n", number1 | number2);

	return 0;
}

 运行结果:

赋值操作符:

操作符

示例

含义

+=

a += b

a = a + b

-=

a -= b

a = a -b

*=

a *= b

a = a * b

/=

a /= b

a = a / b

%=

a %= b

a = a % b

>>=

a >>= b

a = a >> b

<<=

a <<= b

a = a << b

&=

a &= b

a = a &b

^=

a ^= b

a = a ^ b

|=

a |= b

a = a | b

=

a = b

b的值赋予a

示例代码:

//赋值运算符
#include <stdio.h>
int main()
{
	int a = 20;
	int b = a;
	printf("b = %d\n", b);
	b += a;
	printf("b = %d\n", b);
	b -= a;
	printf("b = %d\n", b);
	b *= a;
	printf("b = %d\n", b);
	b /= a;
	printf("b = %d\n", b);
	b = 32;
	a = 3;
	b %= a;
	printf("b = %d\n", b);
	b &= a;
	printf("b = %d\n", b);
	b ^= a;
	printf("b = %d\n", b);
	b |= a;
	printf("b = %d\n", b);
	b <<= a;
	printf("b = %d\n", b);
	b >>= a;
	printf("b = %d\n", b);

	return 0;
}

运行结果: 

单目运算符:

像A+B中的加号对A和B两个数进行操作,称为双目操作符。单目操作符只对一个数进行操作。

! 逻辑反操作                         - 负值                         + 正值                         & 取地址

sizeof 计算变量类型占用空间的大小

~ 对一个数的二进制进行取反                                                                         -- 前置后置--

++ 前置后置++                                                                                           * 间接访问操作符  

(类型)强制类型转换

!逻辑反操作

在C语言中规定,0表示假,非零表示真。(常用1表示真)

如果一个变量的值是4(真),对其逻辑反操作,这个变量成为假,输出0。如果一个变量的值是0(假),对其逻辑反操作,这个变量成为真,输出1。

示例代码:

//逻辑反操作
#include <stdio.h>
int main()
{
	int a = 4;
	int b = 0;
	printf("!a = %d\n", !a);
	printf("!b = %d\n", !b);
	return 0;
}

运行结果:

sizeof  操作符 

sizeof 可以用来计算变量(变量大小就是变量类型的大小)、类型、数组总大小、数组单个元素大小、也可以通过数组总大小除以数组单个元素的大小,求出数组中元素个数。

示例代码:

//sizeof
#include <stdio.h>
int main()
{
	int number = 20;
	//求类型大小
	printf("%d\n", sizeof(int));
	//求变量大小
	printf("%d\n", sizeof(number));
	int room[10] = { 1,2,3,4,5,6,7,8,9,10 };
	//求数组总大小
	printf("%d\n", sizeof(room));
	//求数组单个元素大小
	printf("%d\n", sizeof(room[0]));
	//求数组中元素个数
	int amount = sizeof(room) / sizeof(room[0]);
	printf("%d\n", amount);

	return 0;
}

 运行结果:

~ 取反操作符 

~ 用于对一个二进制数进行取反,原先的0改成1,原先的1改成0。

示例:

示例代码:

//~取反操作符
#include <stdio.h>
int main()
{
	int number = 19;
	int result = ~19;
	printf("~19 = %d", result);

	return 0;
}

 前置后置 ++--

前置++                          后置++                          前置--                          后置--

前置++:如b = ++a;先将变量a的值加一,再将变量a的值赋予变量b(先++后使用)

后置++:如b = a++;先将变量a的值赋予变量b,再把变量a的值加一(先使用后++)

前置--:如b=--a;先将变量a的值减一,再把变量a的值赋予变量b(先--后使用)

后置--:如b=a--;先将变量a的值赋予变量b,再将变量a的值减一(先使用后--)

示例代码:

//前后置++--
#include <stdio.h>
int main()
{
	int a = 10;
	int b = 2;
	b = ++a;
	printf("b = %d\n", b);
	printf("a = %d\n", a);
	a = 20;
	b = a++;
	printf("b = %d\n", b);
	printf("a = %d\n", a);
	a = 15;
	b = --a;
	printf("b = %d\n", b);
	printf("a = %d\n", a);
	a = 9;
	b = a--;
	printf("b = %d\n", b);
	printf("a = %d\n", a);

	return 0;
}

运行结果:

(类型)操作符 

(类型)可以强制将一种类型的数据转换为另一种类型

注:不建议使用

示例代码:

//(类型)
#include <stdio.h>
int main()
{
	int a = (int)13.14;
	printf("a = %d", a);

	return 0;
}

 

关系操作符

关系操作符

含义

示例

>

大于

A > B

<

小于

A < B

>=

大于等于

A >= B

<=

小于等于

A <= B

!=

不等于

A != B

==

等于

A == B

注:关系操作符常用于选择语句和循环语句中,作为判断条件。

实际上,关系操作符运算的结果是布尔值,如果A>B成立,输出1(真),如果A>B不成立,输出0(假)。

示例代码:

//关系运算符
#include <stdio.h>
int main()
{
	int a = 34;
	int b = 56;
	printf("%d\n", a > b);
	printf("%d\n", a < b);
	printf("%d\n", a >= b);
	printf("%d\n", a <= b);
	printf("%d\n", a == b);
	printf("%d\n", a != b);
	return 0;
}

运算结果:

逻辑操作符:

&& 逻辑与                                                                                                         ||逻辑或

&&逻辑与:两个条件必须都为真,结果才为真。

||逻辑或:两个条件只要有一个为真,结果就为真。

示例代码:

#define _CRT_SECURE_NO_WARNINGS 1
//逻辑操作符
#include <stdio.h>
int main()
{
	int a = 5;
	int b = 7;
	int c = 0;
	int d = 0;
	printf("%d\n", a && b);
	printf("%d\n", a && c);
	printf("%d\n", a || b);
	printf("%d\n", a || c);
	printf("%d\n", c || d);

	return 0;
}

 运行结果:

条件操作符(三目操作符):

标准格式:exp1? exp2: exp3

语法:当exp1成立的时候,做exp2的计算,整个表达式的结果是exp2的结果。

当exp1不成立的时候,做exp3的计算,整个表达式的结果是exp3的结果。

示例代码:

#include <stdio.h>
int main()
{
	int number1 = 0;
	int number2 = 0;
	int max = 0;
	printf("please enter two numbers on the there :\n");
	scanf("%d %d", &number1, &number2);
	number1 > number2 ? max = number1 : max = number2;
	printf("max = %d", max);

	return 0;
}

 运行结果:

逗号表达式:

exp1,exp2,exp3,exp4…expn

逗号表达式:由逗号隔开的一串表达式

该串表达式,从左边往右边计算,直到算出最后一个表达式的值,最后一个表达式的值是整串表达式的值。

示例代码:

//逗号操作符
#include <stdio.h>
int main()
{
	int a = 6;
	int b = 3;
	int c = 7;
	int d = 0;
	d = ( a = a + 3, b = a + c, c = a + b);
	printf("d = %d", d);

	return 0;
}

运行结果:

 

其它操作符:

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

[]                                                         ()                                                                                         .

 

标签:变量,示例,int,常见,C语言,--,操作符,printf
From: https://blog.csdn.net/2401_84689376/article/details/140653273

相关文章

  • C语言知识大闯关之二维数组与变长数组
    目录引言1.二维数组的创建1.1二维数组的概念1.2二维数组的创建2.二维数组的初始化2.1不完全初始化2.2完全初始化2.3按照行初始化2.4初始化时省略行,但不可以省略列3.数组的使用3.1二维数组的下标3.2二维数组的输入和输出二维数组在内存中的存储4.C99中的变长数组引......
  • C语言分支语句之if的一些用法
    目录引言C语言结构1.if语句1.1if1.2else2.分支中包含多条语句3.多重选择elseif4.嵌套if5.悬空else/else与if配对问题引言C语言作为一种非常常用的编程语言,具有灵活强大的循环和分支结构。循环结构允许我们重复执行一段代码,而分支结构则允许我们根据条......
  • 麻了,麻了,终于知道c语言为啥那么容易从入门到放弃了
    麻了,麻了,这谁看不迷糊。(温馨提示:出题时程序一般不会将每一种情况列出,会选其中一个或多个;请勿以答案相同认为思路相同)见了这种题怎么办?猜?这多少分之一的概率?死记?它变个数字又不同了,那得记多少?放弃?好像只能这样了。(不行,不行)今天,博主来教你们彻底解决这些问题。众所周知整......
  • 嵌入式学习第9天——C语言运算符,程序设计结构,输入输出缓冲机制
    2024.7.25第九天笔记关于++混合操作,不同计算结果推理第一种编译结果:inti=5;intsum=(++i)+(++i)=6+7=13第二种编译结果:inti=5;intsum=(++i)+(++i)=6+7=7+7前面的7是因为后面i的变化被影响后,重新赋值=14第一种编译结果:inti=5;in......
  • C语言i++和++i操作
    关于++混合操作,不同计算结果推理第一种编译结果:inti=5;intsum=(++i)+(++i)=6+7=13第二种编译结果:inti=5;intsum=(++i)+(++i)=6+7=7+7前面的7是因为后面i的变化被影响后,重新赋值=14第一种编译结果:inti=5;intsum=(++i)+(i++)=......
  • 学懂C语言(二十五):深入理解 C语言结构体 位域 的概念
            目录一、位域的基本概念二、位域的定义三、位域的内存分配和大小计算示例1:简单位域示例2:跨越多个存储单元注意事项结构体对齐控制总结        C语言中的位域(Bit-Field)是一种特殊的数据结构,允许在结构体中定义占用特定位数的成员,主要用于节......
  • C++学习笔记-operator关键字:重载与自定义操作符
    在C++编程中,operator关键字扮演着极其重要且独特的角色。它允许开发者为内置类型或自定义类型重载或定义新的操作符行为。这一特性极大地增强了C++的表达能力,使得代码更加直观、易于理解和维护。本文将深入探讨C++中operator关键字的使用,包括操作符重载和自定义操作符的基本......
  • C语言:字符串函数、内存函数剖析
    字符串函数、内存函数剖析一、字符串函数(一)求字符串长度1、strlen(1)库函数实现(2)自定义实现(二)长度不受限制的字符串函数1、strcpy(1)库函数实现(2)自定义实现2、strcat(1)库函数实现(2)自定义实现3、strcmp(1)库函数实现(2)自定义实现(三)长度受限制的字符串函数介绍1、strncpy2、s......
  • 随记0000——从0、1 到 C语言
    C语言的发展历程是计算机科学史上的一个重要里程碑。下面是从最早的机器语言到汇编语言,再到高级语言如C语言的简化演进过程:1.机器语言定义与特点机器语言是最底层的编程语言,由一系列二进制代码组成。直接被CPU执行,无需转换或编译。难以阅读、编写和维护。2.汇编语......
  • 2个月搞定计算机二级C语言——真题(2)解析
    1.前言大家好,我是梁国庆。本篇博客讲解真题2,其中的填空题用到了指向结构体的指针访问被指结构体的成员的知识,我在下文做了讲解。其他的主要还是对数组的考察,没什么难度,搞清楚思路写程序就可以。2.程序填空题2.1题目要求2.2提供的代码#include<stdio.h>#include<st......