c语言学习(初识操作符1)

本文详细介绍了C语言中的各种操作符,包括算术操作符、移位操作符、位操作符和赋值操作符等。通过示例代码解释了整数除法、取模运算、左移和右移以及单目操作符如逻辑非和取地址。还讨论了sizeof操作符用于获取变量的字节大小,并展示了其在计算字符串长度时的用法。
摘要由CSDN通过智能技术生成

操作符

先了解一下操作符的种类

算数操作符:

+        -        *        /        %

我们来看一下其中几种操作符

/操作符

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a = 9 / 2;
	printf("%d\n", a);
	return 0;
}

算出来的结果是4,因为用了整型,假如我们想算出小数,是不是将int换成float就行了呢?

接下来我们来试一试

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	float a = 9 / 2;
	printf("%f\n", a);
	return 0;
}

发现结果是4.000000,为什么会出现这种情况,因为两个整数执行的是整数除法,算出的是4

假如我们想得到小数,我们得将两整数至少其中一个改成小数形式

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	float a = 9 / 2.0;
	printf("%f\n", a);
	return 0;
}

这样得到的结果就是4.500000

我们再来看一下%操作符

这个操作符的意思是取模(余)

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a = 9 % 2;
	printf("%d\n", a);
	return 0;
}

结果就是1,因为9除以2余1

注:作用于两个整型数(正整数、负整数),运算结果是两数相除后的余数,运算结果为整数

移位操作符

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

移动操作符移动的是二进制序列

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a = 2;
	int b = a << 1;
	printf("%d", b);
	return 0;
}

a=2,因为移位操作符移动的是二进制序列,而a被标识为整型,为4个字节,32个比特位

所以a的二进制序列为

00000000|00000000|00000000|00000010

当它左移一次之后

b为00000000|00000000|00000000|00000100

所以运行的结果为4

右移操作符也同理

位操作符(先了解一下)

&        ^        |

& 按位余

^ 按位异或

| 按位或

赋值操作符

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

我们来了解几个操作符的意思

比如

a=a+5可以写成a+=5

b=b-6可以写成b-=6


单目操作符

!        逻辑反操作

-        负值

+        正值

&        取地址

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

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

--        前置、后置--

++         前置、后置++

*        间接访问操作符(解引用操作符)

(类型)        强制类型转换

什么是单目操作符

a+b

+的左右两边有2个操作数,所以a位双目操作符

+a只有右边1个操作数,这个时候为单目操作符

我们可以知道,只有一个操作数的操作符就是单目操作符

我们来看一下,c语言中0是假,非0位真

而!会将假的变成真的,真的变成假的

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main()
{
	int a = 5;
	printf("%d", !a);
	return 0;
}

所以运行的结果是0

	int a = 0;

假如将int a=0;改成上述代码,那么运行结果就是1

因为真默认为1

再来看一下sizeof操作符

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

sizeof(a)后面的括号可以省略,因为sizeof不是函数,但是sizeof(int)不能省略,因为语法不支持

sizeof计算字符串大小时候,会计算后面的/0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一起慢慢变强

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值