ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

C语言学习(6)

2021-12-18 17:32:19  阅读:148  来源: 互联网

标签:include int C语言 学习 ++ 操作符 printf main


目录

操作符

1.算术操作符

2.移位操作符

3.位操作数

 4.赋值操作符

5.单目操作符

 6.关系操作符

7.逻辑操作符

8.条件操作符(三目操作符)

 9.逗号操作符

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


操作符

1.算术操作符

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//算数操作符
int main()
{
	int a = 9 / 2;
	float b = 9 / 2.0;
	int c = 9 % 2;//%——取余
	printf("%d\n", a);
	printf("%f\n", b);
	printf("%d\n", c);
	return 0;
}

注意9/2与9/2.0的结果区别,分别为4和4.5 

2.移位操作符

移位操作符移动的是二进制位

如:下列代码中的a——a为整型,一个整型4个字节,所以有32个bit位

a=2实际表示为0...0(30)10;左移后:0...0(29)100

因此b=4

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//移位操作符
int main()
{
	int a = 2;
	int b = a << 1;//移动的二进制位
	printf("%d\n", b);

	return 0;
}

3.位操作数

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

 4.赋值操作符

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

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//赋值操作符
int main()
{
	int a = 2;
	a += 5;
	a -= 3;
	a %= 3;
	printf("%d\n", a);

	return 0;
}

 结果应为1

5.单目操作符

含义:只有一个操作符

注:a+b—+有两个操作数,故为双目操作符

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

例1:!逻辑反操作——实际运用多用作if(a),if(!a)判断

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//单目操作符
int main()
{
	//0表示假,非0表示真
	int a = 10;
	int b = 0;
	printf("%d\n", !a);
	printf("%d\n", !b);//1
	return 0;
}

例2:sizeof——计算类型或变量的大小,是一个操作符而不是函数

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	//10*4
	int arr[10] = {0};
	int sz = sizeof(arr) / sizeof(arr[0]);
	printf("%d\n",sizeof(arr) );//计算数组的总大小,单位是字节
	printf("%d\n",sizeof(arr[0]) );
	printf("%d\n",sz);
	
	return 0;
}

例3:~——按位取反,所有二制位中数字,1变为0,0变为1

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0;
	printf("%d\n", ~a);//~——按位取反
	return 0;
}

 结果~a=-1 

注:整数0——二进制表示0...0(32),~a——二进制表示1...1(32)

数据在内存中存储的是补码,内存内进行计算的也是补码,printf输出为原码

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

负整数计算方法:以-1为例

10...01——原码

11...10——反码(仅符号位不变)

11...11——补码(反码+1)

正整数:原码、反码、补码相同

例4:++      -- 

前置++——先用++,后使用

后置++——先使用a的值,再++

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 10;
	int b = ++a;//前置++——先++,后使用
	int c = a++;//后置++——先使用,再++
	printf("%d\n", c);//11
	printf("%d\n", b);//11
	printf("%d\n", a);//12
	return 0;
}

例5: 强制类型转换(认识)

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	//强制类型转换
	int a = (int)3.14;
	printf("%d\n", a);
	return 0;
}

 6.关系操作符

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

7.逻辑操作符

&&     逻辑与 

||        逻辑或

8.条件操作符(三目操作符)

exp1 ? exp2 : exp3

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

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

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{

	int a = 0;
	int b = 3;
	int max = 0;
	
	/*if (a > b)
		max = a;
	else
		max = b;*/
	
	max=a > b ? a : b;
	printf("%d\n", max);
	return 0;
}

 9.逗号操作符

含义:逗号隔开的一串表达式

逗号表达式,是从左到右依次计算的;

整个表达式的结果是最后一个表达式的结果

int main()
{
	int a = 0;
	int b = 3;
	int c = 5;
	           //a=5     c=1       b=3
	int d = (a = b + 2, c = a - 4, b = c + 2);
	printf("%d\n", d);
	return 0;
}

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

[ ]——下标引用操作符

()——调用函数的时候,函数名后边()就是函数调用操作符

标签:include,int,C语言,学习,++,操作符,printf,main
来源: https://blog.csdn.net/H_JinYun/article/details/122010121

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有