首页 > 其他分享 >12-操作符

12-操作符

时间:2024-12-05 16:25:47浏览次数:3  
标签:12 CRT int 操作符 printf include 表达式

12-操作符

一、算术操作符

+(加) -(减) *(乘) /(除,即商) %(取模,即余数)
#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a;
	a = 9 / 2;
	printf("a = %d\n\n", a);

	float b;
	b = 9 / 2;
	printf("b = %f\n\n", b);

	int c;
	c = 9 % 2;
	printf("c = %d\n\n", c);

	return 0;
}

image-20241204141252844

二、移位操作符

<<(左移) >>(右移)

【注】移位操作符,移动的是二进制位!!!

image-20241204142534369

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 2;
	int b = a << 1;
	printf("b = %d\n", b);

	return 0;
}

image-20241204142352458

三、位操作符

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

四、赋值操作符

= (赋值) +=(加等) -=(减等) *=(乘等) /=(除等) &=(与等) ^=(异或等) |=(或等) >>=(右移等) <<=(左移等)
#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a1 = 2;
	a1 = a1 + 5;
	int b1 = 2;
	b1 += 5;
	printf("a1 = %d\t b1 = %d\n\n", a1, b1);

	int a2 = 2;
	a2 = a2 - 3;
	int b2 = 2;
	b2 -= 3;
	printf("a2 = %d\t b2 = %d\n\n", a2, b2);

	int a3 = 2;
	a3 = a3 % 3;
	int b3 = 2;
	b3 %= 3;
	printf("a3 = %d\t b3 = %d\n\n", a3, b3);

	return 0;
}

image-20241204160244177

五、单目操作符

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

【注】C语言规定:0 表示 假;非0 表示 真!!!

1、!(逻辑取反)

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 0;
	int b = !a;
	printf("a = %d\t b = %d\n\n", a, b);

	if (a)
	{
		//若 a 为真,做事
	}

	if (b)
	{
		//若 a 为假,做事
	}

	return 0;
}

image-20241204161605820

2、sizeof

用来计算C语言类型大小。详见:数据类型的大小

【注】是一个操作符(sizeof 在求变量时后面的括号可以省略,而在求类型时后面的括号不可以省略。因为函数后面的括号是不能省略的)。单位:字节!!!

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	printf("%d\n", sizeof(char));			//	1(字节)
	printf("%d\n", sizeof(short));			//	2(字节)
	printf("%d\n", sizeof(int));			//	4(字节)
	printf("%d\n", sizeof(long));			//	4(字节)
	printf("%d\n", sizeof(long long));		//	8(字节)
	printf("%d\n", sizeof(float));			//	4(字节)
	printf("%d\n", sizeof(double));			//	8(字节)
	printf("%d\n", sizeof(long double));	//	8(字节)

	return 0;
}

image-20241129234400801

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int arr[10] = { 0 };					//数组总空间:4 * 10

	printf("%d\n", sizeof(arr));			//40

	printf("%d\n", sizeof(arr[0]));			//4

	int sz = sizeof(arr) / sizeof(arr[0]);	//求取数组元素个数
	printf("%d\n", sz);						//10

	return 0;
}

image-20241204165854399

3、~(按位取反)

【注】将所有二进数中的 0 变成 1;1 变成 0!!!

一个整数二进制表示有 3 种原码反码补码

整数二进制最高位表示符号位1 表示 0 表示

正整数原码反码补码 相同

【注】计算机存储的是补码!!!

(1)原码

负整数二进制数,就是原码

image-20241204175415167

image-20241204175517664

(2)反码

负整数二进制数,除最高位(符号位)不变其余所有二进数中的 0 变成 11 变成 0,就是反码

image-20241204175415167

image-20241204175517664

image-20241204175548686

(3)补码

负整数的反码加 1

image-20241204175415167

image-20241204175517664

image-20241204175548686

image-20241204175659370

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 0;
	printf("%d\n", ~a);

	return 0;
}

image-20241205091908017

【注】按位取反(~)不在乎整数还是负数,一律都是 0 变成 1;1 变成 0 (符号位也正常改变)!!!

image-20241205092007252

4、++(加加)

【注】--(减减)和 ++(加加)用法相同!!!

(1)前置++(加加)

先++(加加),后使用

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 10;
	int b = ++a;		//前置 ++ :先 ++,后使用
	printf("a = %d\t b = %d\n", a, b);		//a = 11	b = 11

	return 0;
}

image-20241205093023077

(2)后置++(加加)

先使用后++(加加)。

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 10;
	int b = a++;		//后置 ++ :先使用,后 ++
	printf("a = %d\t b = %d\n", a, b);		//a = 11	b = 10

	return 0;
}

image-20241205093339382

5、(类型)

强制类型转换。

【注】主要使用在使用数据类型不匹配的时候!!!

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = (int)3.14;		//强制类型转换:将 3.14 转换成 3

	printf("a = %d\n", a);

	return 0;
}

image-20241205094257611

六、关系操作符

> >= < <= !=(不等于) ==(等于)

七、逻辑操作符

&&(逻辑与) ||(逻辑或)
#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 3;		//非 0 的数(真)
	int b = 0;		//0(假)

	int c = a && b;	//假
	printf("c = %d\n", c);
	
	int d = a || b;	//真
	printf("d = %d\n", d);

	return 0;
}

image-20241205100752005

八、条件操作符

条件操作符又称三目操作符

表达式1 ? 表达式2 : 表达式3

表达式1成立(),表达式2计算整个表达式结果是:表达式2的结果

表达式1不成立(),表达式3计算,整个表达式结果是:表达式3的结果

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 3;
	int max1 = 0;

	if (a > b)
	{
		max1 = a;
	}
	else
	{
		max1 = b;
	}

	printf("max1 = %d\n", max1);
	
	int max2 = a > b ? a : b;
	printf("max2 = %d\n", max2);

	return 0;
}

image-20241205101630764

九、逗号表达式

逗号隔开一串表达式

【注】逗号表达式会从左往右依次计算。整个逗号表达式的结果,是最后一个表达式的结果!!!

表达式1, 表达式2,表达式3, …… , 表达式n
#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int a = 0;
	int b = 3;
	int c = 5;

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

	printf("a = %d\t b = %d\t c = %d\t d = %d\n", a, b, c, d);

	return 0;
}

image-20241205160142975

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

[] () . ->

1、[](下标引用操作符)

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };	//[]下标引用操作符

	printf("arr[5] = %d\n", arr[5]);					//[]下标引用操作符

	return 0;
}

image-20241205160631285

2、()(函数调用操作符)

调用函数时,函数后面的英文格式 ()小括号),就是函数调用操作符

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

int main()
{
	printf("hehehehehe\n");		//()函数调用操作符
	printf("%d\n", 100);		//()函数调用操作符

	return 0;
}

image-20241205161153039

标签:12,CRT,int,操作符,printf,include,表达式
From: https://www.cnblogs.com/AK47YHAO/p/18588630

相关文章

  • vs2012 cmake dll工程 调试dll launch.vs.json 附加到进程
    在VisualStudio中,当你有一个DLL项目并且想要附加调试这个DLL时,你需要指定宿主应用程序(在这个例子中是bt.exe),因为DLL本身不是独立可执行的。以下是如何配置launch.vs.json文件以便附加到bt.exe并调试limit-ml-model.dll的步骤:确定宿主应用程序(bt.exe)的路径:你需要知道bt.exe的......
  • C#知识点12
    线程传参和线程返回值ThreadThread构造函数传递方法有两种方式:publicdelegatevoidThreadStart();publicdelegatevoidParameterizedThreadStart(objectobj);所以Thread可以传递零个或一个参数,但是没有返回值使用lambda表达式直接传入参数调用Start方法时传入参......
  • H7-TOOL自制Flash读写保护算法系列,为复旦微FM33LG和FM33LE制作使能和解除算法,支持在线
    说明:很多IC厂家仅发布了内部Flash算法文件,并没有提供读写保护算法文件,也就是选项字节算法文件,需要我们制作。实际上当前已经发布的TOOL版本,已经自制很多了,比如已经支持的兆易创新大部分型号,新唐的大部分型号等。但是依然有些厂家还没自制,所以陆续开始为这些厂家提供读写保护支持......
  • MGTSC 212 using Excel
    MGTSC212Fall2024LabAssignment4Dueby11:59PM,06Dec.2024Totalpoints:80Perform.allcalculationsusingExcel, whencalculationsareneeded: noothersourceof answers requiring calculation will be permitted.Someof theanswerswillaut......
  • 【期末项目】适合大学生的springboot+vue3完成中国铁路12306网站的业务实现【原创】
        ......
  • OpenAI宣布“ 12 天直播活动” 新技术将揭晓但GPT- 5 暂不推出
    OpenAI近日在X平台宣布,将于明天启动为期12天的直播活动,展示一系列新技术和创新项目,尽管关于GPT-5等新模型的猜测仍在继续,OpenAI澄清称,GPT-4的继任者不会在今年推出。OpenAI首席执行官SamAltman表示,关于12月发布名为Orion的新AI模型的报道“纯属虚构”。该公司发言人也证实......
  • 以数据驱动增长,火山引擎数智平台“数据找人”为双 12 营销提效
    “双12”即将来临,众多商家最为关心的,莫过于如何借助对数据的充分利用实现降本增效,在竞争激烈的大环境中快人一步,为了达成这个目标,商家往往需要耗费人力、物力以及时间对海量数据进行寻找与分析。 那么,是否可以在数智化工具的帮助下,自动获取所需数据,将“人找数据”转化为“数据......
  • 活动预告 | 12月21日,中国数据库联盟(ACDU)中国行·南京站邀您共赴技术新篇
    随着冬日的脚步悄然而至,墨天轮社区2024年的【ACDU中国行】活动也即将画上圆满的句点,最后一站我们来到古都——南京。古老的城墙与雄伟的建筑见证了千年历史的变迁,而在这个充满活力的城市,我们将聚焦数据库技术的前沿发展与未来趋势,深入探讨技术的历史脉络、当下应用及未来发展。......
  • 移位操作符详解
    必要理解在了解移位操作符之前先了解一下一个整数的原码反码补码那原码反码补码怎么写呢?接下来我们给出定义按照一个数的正负直接写出他的二进制形式就得到了他的原码正数的原码反码补码都是相同的负数的原码反码补码都是需要计算的负数的反码就是符号位(......
  • 蓝桥杯备考冲刺必刷题(Python) | 128 冰雹数
    学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。附上汇总贴:蓝桥杯备考冲刺必刷题(Python)|汇总-CSDN博客【题目描述】任意给定一个正整数N,如果是偶数,执行:N/2;如果是奇数,执行:Nx3+1,生成的新的数字再执行同样的动作,循环往复。通过观察发现,这个......