操作符详解

简介: 操作符详解

进制与进制转化

十进制

1. 10进制中满10进1。

2. 10进制的数字每⼀位都是0~9的数字组成。

例如:123=1*10^(3-1)+2*10^(2-1)+3*10^(1-1)

二进制

1. 2进制中满2进1。

2. 2进制的数字每⼀位都是0~1的数字组成。

例如:1101=1*2^(4-1)+1*2^(3-1)+0*2^(2-1)+1*2^(1-1)

十六进制

1. 16进制的数字每⼀位是0~9,a ~f 。

2. 16进制表示的时候前面加0X。

十进制转化成二进制

二进制转化成八进制

1. 在2进制转8进制数的时候,从2进制序列中,右边低位开始向左每3个2进制位会换算⼀个8进制位,剩余不够3个2进制位的直接换算。

2. 0开头的数字,会被当做8进制。

逗号表达式

1. 逗号表达式,就是用逗号隔开的多个表达式

2. 逗号表达式,从左向右依次执行。

3. 整个表达式的结果是最后⼀个表达式的结果。

//代码1
int a = 1;
int b = 2;
int c = (a>b, a=b+10, a, b=a+1);//逗号表达式
c是多少?//13
 
//代码2
if (a =b + 1, c=a / 2, d > 0)//执行

下标访问与函数调用

[ ] 下标引用操作符

int arr[10];//创建数组
arr[9] = 10;//实⽤下标引⽤操作符。
[ ]的两个操作数是arr和9。

()函数调用操作符

#include <stdio.h>
void test1()
{
 printf("hehe\n");
}
void test2(const char *str)
{
 printf("%s\n", str);
}
int main()
{
 test1(); //这⾥的()就是作为函数调⽤操作符。
 test2("hello bit.");//这⾥的()就是函数调⽤操作符。
 return 0;
}

结构成员访问操作符

结构体概念

1. 结构是⼀些值的集合,这些值称为成员变量

2. 结构的每个成员可以是不同类型的变量,如: 标量、数组、指针,甚至是其他结构体。

结构的声明

struct student
{
    char name[20];
    char sex[10];
    int age;
    char id[16];
}s4,s5,s6;//s4,s5,s6都是全局变量
struct student s7 //s7是全局变量
int main()
{
    struct student s1;
    struct student s2;
    struct student s3;
    //s1,s2,s3都是局部变量
}

结构体变量初始化与打印

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
  struct point
  {
    int x;
    int y;
  };
  struct point s1 = { 1,2 };//相同类型初始化
  printf("%d %d\n", s1.x, s1.y);//打印结构体
 
  struct student
  {
    char name[20];
    int age;
    char male[15];
    int id;
  };
  struct student p1 = { "黄舜禹",19,"男",202366 };//不同类型初始化
  struct student p2 = { .name = "黄舜禹2",.age = 18,.male = "女",.id = 202367 };//指定顺序初始化
  printf("%s %d %s %d\n", p1.name, p1.age, p1.male, p2.id);//打印结构体
 
  struct node
  {
    int num;
    struct point;
    struct student;
  };
  struct node w1= { 20,{1,2},{ "黄舜禹",19,"男",20231111066 }};//结构体嵌套初始化
  return 0;
}

操作符的属性

优先级

1. 如果⼀个表达式包含多个运算符,哪个运算符应该优先执行,各种运算符的优先级是 不⼀样的。

2. 记住常用的几个操作符优先级即可。

1.圆括号( () )
2.⾃增运算符( ++ ),⾃减运算符( -- )
3.单⽬运算符( + 和 - )
4.乘法( * ),除法( / )
5.加法( + ),减法( - )
6.关系运算符( < 、 > 等)
7.赋值运算符( = )

结合性

1. 如果两个运算符优先级相同,优先级没办法确定先计算哪个了,这时候就看结合性了,则根据运算符是左结合,还是右结合,决定执行顺序。

2. 大部分运算符是左结合(从左到右执行),少数运算符是右结合(从右到左执行),比如赋值运算符( = )。

相关文章
|
编译器 C语言 索引
操作符详解下(非常详细)
操作符详解下(非常详细)
56 0
|
8月前
|
存储 编译器
操作符详解1(一)
本文介绍了编程中的操作符分类和位操作,包括算术操作符(如 +, -, *, /, %)、移位操作符(<<, >>)、位操作符(&, |, ^)、赋值操作符、单目操作符、关系操作符、逻辑操作符和条件操作符。还讨论了原码、反码和补码的概念,以及左移(<<)和右移(>>)操作符的工作原理,包括逻辑右移和算术右移的区别。最后提到了位操作符按位与(&)、按位或(|)、按位异或(^)和按位取反(~)的运算规则。
71 1
|
7月前
|
编译器 Linux C语言
操作符详解(2)
操作符详解(2)
61 0
|
7月前
|
索引
操作符,详细讲解
操作符,详细讲解
|
8月前
|
存储 C语言
操作符详解2(一)
C语言操作符具有优先级和结合性,决定表达式求值顺序。优先级高的运算符先执行,相同优先级时看结合性,左结合从左到右,右结合从右到左。例如,3+4*5中乘法优先级高于加法,5*6/2中乘法和除法优先级相同,但都是左结合,所以先计算5*6。圆括号具有最高优先级,可改变其他运算符优先级。表达式求值时,整型运算以缺省整型精度进行,小整型值会被提升为int或unsigned int。正数提升时高位补0,负数提升时高位补1,无符号整型提升始终补0。
71 0
|
存储 编译器
操作符详解(1)
操作符详解(1)
51 0
|
存储 C语言 C++
S5——C操作符详解,你都知道吗? 上
讲解主要内容: 1. 各种操作符的介绍 2. 表达式求值 以下让我们开始正式重新认识和理解操作符吧!
|
编译器
详解操作符(上)
详解操作符(上)
OR操作符
OR操作符
81 0