C语言new start 04

目录

5.1初遇操作符

5.1.1算数操作符:+ 、-、 * 、/、 %

5.1.2移位操作符:>>右移 左移 <<

5.1.3位操作符: &安位与, | 按位或 , ^按位异或

5.1.4赋值操作符:= ,+=, -=, *=, /=, &=, ^=, |=, >>=, <<=

加加减减

强转


5.1初遇操作符

5.1.1算数操作符:+ 、-、 * 、/、 %

#include <stdio.h>
int main()
{
	int a = 1 + 3;
	int b = 72 - 6;
	int c = 32 * 8;
//注意在运算过程中当两边都是整数时程序会执行整数除法,如果一边位小数执行小数运算
	int d = 6 / 3;
		printf("%d \n", a);
		printf("%d\n",b);
		printf("%d\n", c);
		printf("%d\n", d);
		//取模(得到余数)
		int f = 9 % 2;
		printf("%d\n",f);
		return 0;
}

5.1.2移位操作符:>>右移 左移 <<

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

注释:左移操作符 ----移动的是二进制位

5.1.3位操作符: &安位与, | 按位或 , ^按位异或

5.1.4赋值操作符:= ,+=, -=, *=, /=, &=, ^=, |=, >>=, <<=

例如

#include <stdio.h>
int main()
{
	int a = 6;
	a = a + 5;
	a = 6;
	a += 5;

	a = a - 3;
	a -= 3;
	a = a % 3;
	a %= 3;
	printf("%d \n",a);
	return 0;

}

单目操作符与双目操作符

双目操作符:1+3 这里的加号有两个操作数就称为双目操作符

单目操作符:只有一个操作数,就称为单目操作符

逻辑反操作
-负值
+

正值

&取地址
sizeof操作数的类型长度(以字节为单位)
~对一个数的二进制按位取反
--前置、后置 --
++前置、后置 ++
*间接访问操作符(解引用操作符)
(类型)强制转换类型
// !逻辑取反案例
#include <stdio.h>
int main()
{
	//0 表示假 非0就是真
	int a = 0;
	printf("%d \n",!a);
	if (a) {
		//当a为真,执行
	}
	if (!a)
	{
		//当a为假,执行
	}

}

//sizeof案例
#include <stdio.h>
int main()
{
	//sizeof是一个操作符
	//计算数据类型大小
	int y = 6;
	printf("%d \n",sizeof(int));
	printf("%d \n", sizeof(y));
	return 0;
}
//sizeof计算数组案例
#include <stdio.h>
int main()
{
    //5*4=20
	int yin[5] = {0};
	printf("%d \n", sizeof(yin));//在这里所计算的是数组的总大小单位为字节  20
    printf("%d \n", sizeof(yin[5]));
//计算数组元素个数如下
    int sz= sizeof(yin) /sizeof(yin[0])
    printf("%d \n",sz)
	return 0;
}

//int main()
{
    int a=0;
    printf("%d \n", ~a)//~按*(二进制)位取法 把所有二进制中数,1变成0,0变成1;
    return 0;

注意:对于整数在内存中储存的是补码,一个正整数的二进制表示有三种。

例如:-1

原码:10000000000000000000000000000001

反码:11111111111111111111111111111110

补码:11111111111111111111111111111111(红色字体为符号位)

原码变反码符号位不变,其他位按位取反,反码变补码反码加一。正整数原码、补码、反码相同

加加减减

#include <stdio.h>
int main()
{
	int y = 15;
	int z = ++y;//前置++ 先++ 后使用
	printf("%d \n",y);
	printf("%d \n",z);
	int yi = 15;
	int zw = y++;//后置++ 后使 用先++
	printf("%d \n", yi);
	printf("%d \n", zw);
	return 0;
}
//输出结果位
//16
//16
//15
//16

强转

当两个数据类型不匹配时就需要用到数据类型转换。

int main()
{
	//强制转换数据类型
	int y = 1.1;

	printf("%d \n",y);
	return 0;
}

此代码编译时会出现警告如图

在这时就需要用到转换数据类型:

int main()
{
	//强制转换数据类型
	int y = (int)1.1;

	printf("%d \n",y);
	return 0;
}

5.1.2关系运算符:> , >=,<,<=,!= ,== 。此类运算符用于测试看是否相等时用。

5.1.3逻辑操作符; 逻辑与:&&  ,逻辑或:||。

int main()
{
	int a = 1;
	int b = 5;
	int c = a && b; 

	printf("%d \n", c);
	return 0;
}





int main()
{
	int a = 1;
	int b = 0;
	int c = a && b; 

	printf("%d \n", c);
	return 0;
}

                 

 逻辑&&:当两个数据都满足条件时,最终的结果才为真。

int main()
{
	int a = 1;
	int b = 0;
	int c = a || b; 

	printf("%d \n", c);
	return 0;
}

逻辑与 ||:当两个数据其中有一个为真时最终解解结果为真

5.1.4条件操作符:exp1? exp2:exp3.(又称三目操作符)

当exp1  成立,exp2计算,整个表达式的结构是:exp2的结果

当exp1  不成立,exp3计算,整个表达式的结构是:exp3的结果

int main()
{
	int d = 3;
	int y = 2;
	int max = 3;
	//if (d > y) {
	//	max = y;
	//}
	//else {
	//	max= d;
	//}
	max = d > y ? d : y;//表达式一
	return 0;
}

5.1.5逗号表达式是:逗号隔开的一串表达式

int main()
{
	/*(2, 4 + 5, 6)*/
		int a = 3;
		int b = 5;
		int c = 9;
		int d = (a = b + 2, c = a - 4, b = c + 2);
		//逗号表达式,是从左往右依次计算
		//整个表达式的结果是最后一个表达是
		printf("%d \n",d);
		return 0;
}

5.1.6下标引用、函数调用和结构成员:[]     ()    .   ->

(1)下标引用[] 

int main()
{
	int arr[7] = { 1,2,3,4,5,6,7 };
	printf("%d \n", arr[5]);
	return 0;
}

这里的 [ ] 就是下表 引用操作符

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

int main()
{
	//调用函数的时候,函数名后边的()就是函数调用操作符
	printf("尹子里\n");

	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值