本部分包含操作符,主要为位操作符,逻辑操作符,三目操作符,逗号表达式,结构成员,.结构体 .成员名,->结构体指针 ->成员名。
练习题:求一个整数存储在内存中的二进制位
笔记部分:
图片版本:
文字版本:
- 操作符(运算符)
- 作用:用于执行代码的运算
- 算术操作符
- 作用:用于处理四则运算
- 算术运算符包括以下符号
- 两个小数不可以取模
- 前置递增先对变量进行++,再计算表达式,后置递增相反
- 位移操作符
- 移(2进制)位操作符
- <<左移
- >>右移
- 赋值操作符
- 作用:用于将表达式的值赋给变量
- 赋值运算符包括以下几个符号:
- 比较操作符
- 作用:用于表达式的比较,并返回一个真值或假值
- 比较运算符有以下符号:
- 注意:C和C++ 语言的比较运算中, “真”用数字“1”来表示, “假”用数字“0”来表示。
- 逻辑操作符
- 作用:用于根据表达式的值返回真值或假值
- 逻辑操作符有以下符号:
- 规律:
- 逻辑非:真变假,假变真
- 逻辑与:一假全假
- 逻辑或:一真全真
- 位操作符
- & 与 一假全假
- | 或 一真全真
- ^ 异或 相同为假 不同为真 ~ 按位取反
- [ ]——下标引用操作符
- ( )——函数调用操作符
代码练习:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include<windows.h>
struct Student
{
char name[10];
char sex[5];
int year;
};
int main()
{
//位操作符
//a=3 b=5 不用第三个变量,打印a=5,b=3
//1.
int a = 3;
int b = 5;
a = a + b;
b = a - b;
a = a - b;
printf("a=%d,b=%d", a, b);
//2.
int a = 3;
int b = 5;
a = a ^ b;
b = a ^ b;
a = a ^ b;
printf("a=%d,b=%d", a, b);
//求一个整数存储在内存中的二进制位
int c = 0;
int count = 0;
printf("\n请输入:");
scanf("%d", &c);
for (int i = 0;i < 32;i++)
{
if (((c >> i) & 1) == 1)
{
count++;
}
}
printf("有%d个1\n",c,count);
//逻辑操作符
int a = 0, b = 1, c = 2, d = 3;
int i = a++ && b++ && c++ && d++;
printf("a=%d,b=%d,c=%d,d=%d",a,b,c,d);
//三目操作符
int b = 0;
int a = 6;
b = (a > 5 ? 1:2);
//逗号表达式
int a = 0;
int b = 3;
int c = 2;
int d = (c = 4, a = b + 2, c += 1);
printf("%d\n", d);
//结构成员
struct Student stu = { "mumu","男",45 };
////.结构体 .成员名
//printf("名字:%s\n", stu.name);
////->结构体指针 ->成员名
struct Student* pstu = &stu;
printf("名字:%s\n", (*pstu).name);
printf("名字:%s\n", pstu->name);
}