首页 > 其他分享 >关于操作符的补充

关于操作符的补充

时间:2023-10-30 23:33:34浏览次数:44  
标签:include 补充 运算符 int 操作符 关于 printf main 表达式

关于操作符的补充

上次我们已经说了+,-,*,/,那一节,作为C刚刚入门的新手,写的不好庆幸的是说的是加减乘除

关于操作符的补充_操作符

今天我们说一些常常使用的一些


1,sizeof 运算符和size t类型

sizeof 运算符以字节为单位返回运算对象的大小(在C中,1字节定义为char类型占用的空间大小。过去,1字节通常是8位,但是一些字符集可能使用更大的字节)。运算对象可以是具体的数据对象(如,变量名)或类型。如果运算对象是类型(如,float),则必须用圆括号将其括起来。

我们使用代码去直观的感受一下

#include<stdio.h>

int main()  
{

	int i;

	printf("%zd\n", sizeof(int));

	printf("%zd", sizeof(i));

}

关于操作符的补充_操作符_02


我们使用C官网上的搜索可以看他的返回这是种

C 语言规定,sizeof 返回size_t类型的值。这是一个无符号整数类型,size_t是语言定义的标准类型,新增了%zd 转换说明用于 printf()显示 size_t 类型的值。如果系统不持%zd,可使用%u或%lu代替%zd。


关于操作符的补充_运算符_03


这里可以使用%zd去打印sizeof计算的值



2,求模运算符  %

( ˘ ³˘)❤求模运算用于于整数运算。求模运算符给出其左侧整整数除以右侧整数的余数,重要的一点是%的左右必须是整数

#include<stdio.h>
int main() 
{
	int a = 4;
	int b = 3;
	int c = a % b;
	printf("%d",c);
}

关于操作符的补充_运算符_04

如果两边都不是整数是错误的

#include<stdio.h>
int main() 
{
	int a = 4;
	float b = 3.0;

	int c = a % b;

	printf("%d",c);
}

关于操作符的补充_#include_05



我们可以使用%作许多事 ,比如判断奇数偶数

1,判断偶数

#include<stdio.h>
int main() 
{
	int i = 0;
	for (i = 1; i < 101; i++)
	{
		if (i % 2 == 0)
		{
			printf("%d\n", i);
		}
		else
		{
			continue;
		}

	}

}

关于操作符的补充_#include_06

判断奇数

#include<stdio.h>
int main() 
{
	int i = 0;
	for (i = 1; i < 101; i++)
	{
		if (i % 2 != 0)
		{
			printf("%d\n", i);
		}
		else
		{
			continue;
		}

	}

}

关于操作符的补充_#include_07

3,递增运算符  ++

~(^з^)-☆将其运算对象递增1。该运算符以两种方式出现。第1种方式,++出现在其作用的变量前面,第2种方式,++出现在其作用的变量后面。使用代码去直观感受

#include<stdio.h>
int main() 
{
	int a, b, c;
	a = 5;
	printf("开始a的值是:%d\n", a);
	b = a++;       //先使用a,再加加

	printf("此时a的值是:%d\n", a);
	printf("在a++后,此时b的值是:%d\n", b);
	c = ++a;      //先加加,再使用a

	printf("此时a的值是:%d\n", a);
	printf("在++a后,此时c的值是:%d\n", c);


}

关于操作符的补充_操作符_08



++在许多的地方都使用比如循环(while循环,do   while循环),

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int main() 
{
	int i = 0;
	while (i < 10)
	{
		printf("努力的一天\n");
		i++;      //这里使用i++,才能让循环停下,当i=10;判断为假
	}
}



关于操作符的补充_#include_09



4,递减运算符:--

(*^3^)/~☆每种形式的递增运算符都有一个递减运算符与之对应,用﹣﹣代替++即可:一样该运算符以两种方式出现。第1种方式,++出现在其作用的变量前面,第2种方式,++出现在其作用的变量后面。使用代码去直观感受

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int main()
{
	int a, b, c;
	a = 5;
	printf("开始a的值是:%d\n", a);
	b = a--;       //先使用a,再减减

	printf("此时a的值是:%d\n", a);
	printf("在a--后,此时b的值是:%d\n", b);
	c = --a;      //先减减,再使用a

	printf("此时a的值是:%d\n", a);
	printf("在--a后,此时c的值是:%d\n", c);

}

关于操作符的补充_操作符_10


5,逗号运算符

逗号运算符扩展了 for循环的灵活性,以便在循环头中包含更多的表达式。逗号运算符并不局限于在 for循环中使用,但是这是它最常用的地方。逗号运算符有两个其他性质。首先,它保证了被它分隔的表达式从左往右求值 然后整个逗号表达式的值是逗号右侧表达式的值

例如,

#include<stdio.h>
int main()
{
	int a = 9;
	int b = 20;
	int c = 4;

	int i = a++; c--; a++;

	printf("%d", i);


}

关于操作符的补充_运算符_11



6,条件运算符:?:

C提供条件表达式

作为表达if else语句的一种便捷方式,该表达式使用?:条件运算符。该运算符分为两部分,需要3个运算对象。回忆一下,带一个运算对象的运算符称为一元运算符,带两个运算对象的运算符称为二元运算符。以此类推,带 3 个运算对象的运算符称为三元运算符。条件运算符是C语言中唯一的三元运算符


关于操作符的补充_运算符_12

条件表达式的通用形式如下:

expressionl? expression2: expression3

条件运算符的第二第三可以是字符串

举个例子MAX =(x>y)? x : y ;

#include<stdio.h>
int main()
{
	int a = 9;
	int b = 20;

	int MAX = a>b?a:b;

	printf("MAX:%d", MAX);


}

关于操作符的补充_#include_13

7,逻辑运算符

假设 exp1 和 exp2 是两个简单的关系表达式

当且仅当exp1和exp2都为真时,exp1 && exp2才为真;

如果 exp1或exp2为真,则exp1 II exp2为真;

如果exp1为假,则!exp1为真;如果exp1为真,则!exp1为假。

下面是一些具体的例子:

20> 35&& 439> 400   为假,因为只有一个子表达式为真;

5>2||4>7为真,因为有一个子表达式为真;

!(4>7)为真,因为4不大于 7。

顺带一提,最后一个表达式与下面的表达式等价:

4<=7

如果不熟悉逻辑运算符或者觉得很别扭,请记住:(练习&&时间)== 完美。

&&       在英文的  and      中文的  并且

||            在英文的    or       中文的   或者

!           在英文的    not       中文的   非

&&和||的使用

例如闰年的判断;能被4整除并且不能被100整除,或者能被400整除

#include<stdio.h>
int main()
{
	int year = 0;
	printf("请输入年份");
	scanf("%d", &year);
	if ((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0))
	{

		printf("是闰年");
	}
	else
		printf("不是闰年");

}

关于操作符的补充_运算符_14

printf("是闰年");
}
else
	printf("不是闰年");

!=是不等于,!相反比如,在C语言中非0是真, 0是假,2本应该是真, 但是!2是假

对于判断而言,只有是真的才会执行,如果是假它就会停止,于是我们就可以去使用判断语句来验证这个运算

#include<stdio.h>
int main()
{
	int i = 1;
	if (!i)
	{
		printf("i没有变成假");
	}
	else
		printf("i依旧是真");
}


关于操作符的补充_运算符_15



8,查找地址:&运算符

(指针(pointer)是 C 语言最重要的(有时也是最复杂的)概念之一,用于存储变量的地址。前面使用的scanf()函数中就使用地址作为参数,&运算符可以让我们去访问地址,就像我们去找人,要去某市,某街道,某小区,某楼层,某房间号


关于操作符的补充_运算符_16

#include<stdio.h>
int main()
{
	int i = 1;
	scanf("%d", &i);
	printf("%d", i);
}

9.*运算符(解引用操作符),可以访问地址,并可以改变地址的值


#include<stdio.h>
int main()
{
	int a = 9;
	int * i = &a;   //将a的地址放到*i中
	printf("此时i的值:%d\n", i);
	 *i = 10;
	printf("访问之后,此时a的值:%d\n", a);
	

}

关于操作符的补充_操作符_17


,其他简单的运算符关系运算符和表达式

关系运算符:

每个关系运算符都把它左侧的值和右侧的值进行比较。

     <     小于

     <=     小于或等于

      ==     等于

    =>      大于或等于

        >     大于

       !=     不等于


关系表达式:

简单的关系表达式由关系运算符及其运算对象组成。

如果关系为真,关系表达式的值为 1; 如关系为假,关系表达式的值为0。

示例:

50> 27为真,关系表达式的值为 1

(2 + 5) == 8 为假,关系表达式的值为 0






赋值运算符:

下面的运算符用右侧的值,根据指定的操作更新左侧的变量:

+=        把右侧的值加到左侧的变量上

-=        从左侧的变量中减去右侧的值

*=        把左侧的变量乘以右侧的值

/=        把左侧的变量除以右侧的值

%=      左侧变量除以右侧值得到的余数





10最后移位操作符

<< 左移操作符

>> 右移操作符

注:移位操作符的操作数只能是整数。

<< 左移操作符:

#include <stdio.h>
int main()
{
 int a = 10;
 int b = a<<1;
 printf("b= %d\n", b);
 printf("a= %d\n", a);
 return 0;
}

关于操作符的补充_#include_18

>>右移操作符

#include <stdio.h>
	int main()
	{
		int a = 10;
		int b = a >> 1;
		printf("b= %d\n", b);
		printf("a= %d\n", a);
		return 0;
	}


关于操作符的补充_运算符_19

<< 左移操作符 和>> 右移操作符会有更详细的解释在后面会做的





关于操作符的补充_运算符_20


标签:include,补充,运算符,int,操作符,关于,printf,main,表达式
From: https://blog.51cto.com/u_16237653/8097634

相关文章

  • 关于前后端跨域以及请求问题
    1.后端解决跨域问题同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotatio......
  • 关于STM32芯片类型的详解
    关于STM32芯片类型的详解对于STM32芯片类型英文缩写的详解及相关型号: CL - Connect Line(互联型):包含STM32F105和STM32F107两个系列,该系列的芯片侧重于提供丰富的外设和连接选项,以满足各种连接性要求的应用场景。VL - Value Line(超值型):包含stm32f100系列,该系列的芯片是为......
  • vue关于render函数如何渲染v-html
    render函数如何渲染v-html,两种方式(适用于搜索关键字高亮) 例子:“互联网数据”搜索关键字"网"==>row.htmlStr:互联<spanclass="search-text">网</span>数据render:(h,{row})=>{//模板组件方式returnh({template:"<span>"+row.htmlStr+"&l......
  • 关于能源的一些想法
    关于能源的一些想法 时间:2023年夏主题:能源转换的问题讨论目的:记录问题,至于未来是否发生需看能源科学发展状况 关于热能转换的想法,空调可以将空气与制冷剂发生蒸发,将冷空气排至室内,那么室外的热空气似乎否可以进行余部压缩使热能转换成为其它我们需要的能量?例:......
  • 关于AI智能
        今天我在csdn上看到一篇文章“AI智能体能否取代工程经理?”这篇文章探讨了AI是否能够替代工程经理的角色。文章介绍了工程经理每天的工作流程。很多人可能认为用AI替代工程管理者确实能提高效率,但是在我看来,AI是不能替代工程经理这个重要的角色的。        首......
  • java陷阱之关于数据同步
    需求需要查询设备列表。使用redissearch,需要从cannal->kafka->redis问题保证数据有序性和一致性(运维那边不能根据设备id进行分区,到时消息消费时面临消费的有序性问题)采用的是不使用binlog日志修改信息,采用通过id在数据库实时查一次。但是因为有些字段高频修改导致同步的时......
  • 关于mapStruct-高阶用法
    描诉:符合应用场景的实用的mapStruct对于bean映射的方法1.使用自定义转换器(Converters):如果你需要自定义映射逻辑,可以创建自定义转换器类,并使用@Mapper注解的uses属性来引用它们。这允许你在映射中使用自定义方法,以满足特定需求.@Mapper(uses={CustomConverter.class})public......
  • 关于使用ChatGPT的API开发批量处理工具的总结
    关于使用ChatGPT的API开发批量处理工具的总结由于批量处理,输入和输出最好使用json格式,并在提示词中要求以相同格式返回;以便于工具的解析和处理;返回的结果中要求chatgpt,说明其详细的处理过程及原因,方便对提示词进行调优,否则,面对问题时,只能瞎猜;提示词中尽量说明什么情况要怎么做......
  • 关于STM32时钟的问题记录
    关于STM32时钟的问题    在读别人建立大型的STM32工程时,会看到主函数中会首先执行一个RCC_Init()的函数,跳转过去之后发现是配置时钟的相关函数。而我自己在写STM32相关代码的时候,似乎从来没有注意过这个问题,我猜想在STM32程序开始执行的时候,也就是复位之后,会首先执行时钟......
  • python面向对象-学习笔记(六、方法相关的补充)
    私有化方法私有方法classPerson:__age=18#私有方法def__run(self):print("run")#def_Person__run(self):#print("Personrun")p=Person()#p.__run()#p._Person__run()print(Person.__dict__)内置特殊方法......