栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

零基础快乐学习C/C++——09

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

零基础快乐学习C/C++——09

操作符详解 1. 操作符分类

  1. 算数操作符
    /----得到的商 %—得到的是余数,对于%只能要求两端都是整型
  2. 移位操作符
int a = 16;
//>>--右移操作符,移动的是二进制位
int b = a>>1;

右移操作符:
算术右移
右边丢弃,左边补原符号位
逻辑右移
右边丢弃,左边补0

int a = -1;
//整数的二进制表示形式有三种:原码补码反码
//但是存储到内存的是补码
//对于负数,100000.....0001 现在写出的是原码
//1111.....1110 反码 1111....1111补码

左移操作符<<
左边丢弃,右边补0
注意对于移位操作符不能移动负数位
例如 num<<-1;

  1. 位操作符
    &按位与----可以理解为乘法
    | 按位或----有一个为1就是1,可以理解为加法
    ^ 按位异或----同0异1

小练习:求一个整数存储在内存中的二进制1的个数

int main()
{
	int num = 0;
	int count = 0;
	scanf("%d",&num);//输入-1
	
	int i 0;
	for(i =0;i<32;i++)//因为是32位
	{
		if(1 == ((num>>i)&1))//想到得到每一位可以通过和1进行按位与,从最低位开始与
			count++;
	}
	printf("%dn",count);
	return 0;
	
}
  1. 赋值操作符

  2. 单目操作符

    !—把真变成假,假变成真

    第一种是a为真打印hehe
    第二种是a为假打印hehe

sizeof计算变量所占内存空间的大小,单位是字节

结果是2 0
不管a是什么类型,只要放到s这里来,都是s说了算,就是s的大小,短整型2个字节
sizeof表达式不会进行计算,就是个摆设,所以s的值不会发生变化

~按位取反

注意上面是补码,打印出来的则是原码,所以需要转化成原码 最后得到-1

  1. 关系操作符


7. 逻辑操作符





首先要知道a++是先用a,再++,所以a此时是0,又因为&&是只要有一个为0就都为0,所以&&后面的都没有算,之后a自增为1,bcd都没加,所以结果是1234

如果a改为1呢?


2335

  1. 条件操作符


b = (a>5?3:-3);
max = (a>b?a:b);
  1. 逗号表达式

  2. 下标引用、函数调用和结构成员
    关于前两个在之前都有过介绍,现在介绍下结构成员

. 结构体.成员名
-> 结构体指针 ->成员名

//创建了一个结构体类型 struct Stu
struct Stu
{
	char name[20];
	int age;
	char id[20];
};
int main()
{
	struct Stu s1 = {“张三”,20,"2018002394};
	struct Stu* ps = &s1;
	printf("%sn",ps->name);
	//->结构体指针-成员名
	
	//使用struct Stu这个类型创建了一个学生对象s1 并初始化
	printf("%sn",s1.name);
	printf("%dn",s1.age);
	//结构体变量.成员名
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832485.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号