【简单地过一遍C语言基础部分】所有知识点,点到为止!(仅一万多字)(三)

简介: 就在前几天,C语言入门到进阶部分的专栏——《维生素C语言》终于完成了。全文共计十八个章节并附带三张笔试练习篇,美中不足的是,第一章和第二章是以截图形式展现的。由于本人一开始是在有道云笔记上写的初稿,当时想方便省事(有道云排版个人感觉确实比较美观)就直接以截图的形式完成了第一章和第二章。本人考虑到因为是截图,不能复制文中出现的代码,不方便读者进行复制粘贴,所以我打算重新写一下第一章和第一章的内容,并且重新进行了排版。

八、操作符简单介绍


0x00 算数操作符

❓ 什么是算数操作符?


📚 算术运算符即算术运算符号。是完成基本的算术运算 (arithmetic operators) 符号,就是用来处理四则运算的符号。

081d10b5398df5a89109b1f4f3b744a9_20210924135347367.png

💬 代码演示:


int main()
{
    int add = 1 + 1;
    int sub = 2 - 1;
    int mul = 2 * 3;
    float div = 9 / 2.0; //只要有浮点数出现,执行的就是浮点数除法
    int mod = 123 % 10;
    return 0;
}

0x01 移位操作符

❓ 什么是移位操作符?


📚 移位运算符在程序设计中,是位操作运算符的一种。移位运算符可以在二进制的基础上对数字进行平移。

f91ba6a1789601a6b75615aabf16f387_20210924135457148.png

💬 代码演示:


int main()
{   
    // 移位操作符 移动的是它的二进制位
    // << 左移
    // >> 右动
    int a = 1;
    // 整形1占4个字节-32bit位
    // 0000000000000000000000000000001
    int b = a<<1;
   // 0000000000000000000000000000010  左边丢弃,右边补0
    printf("%d\n", b);
    printf("%d\n", a);
    return 0;
}

🚩  运行结果: 2 1


0x02 位操作符

❓ 什么是位操作符?


📚 位操作是程序设计中对位模式按位或二进制数的一元和二元操作

eec3ae4b2d55a63035741674b7f95827_20210924143419960.png

💬 代码演示:


#include <stdio.h>
int main()
{
    //位操作 依然是二进制位
    // & 按位与   都为真,则返回真,只要出现假,就返回假
    int a = 3; //真
    int b = 5; //真
    int c = a&b; //按位与
    // 011
    // 101
    // 001
    // R→ 1 //真
    printf("%d\n", c);
    int d = a|b;// 按位或  有真则为真,无则假,只要出现真,就返回真
    // 011
    // 101
    // 111
    // R→ 7
    printf("%d\n", d);
    int e = a^b;// 按位异或  相同为假,相异为真   11\ 00-> 0   10 -> 1
    //异或的计算规律
    //对应的二进制位相同,则为0
    //对应的二进制位相异,则为1
    // 011
    // 101
    // 110
    // R→
    printf("%d\n", e);
    return 0;
}


0x03 赋值操作符

❓ 什么是赋值操作符?


📚 赋值运算符是双目运算符,用在赋值表达式中。赋值运算符将值存储在运算符左边操作数指定的变量中。

87b7b8328ee938bade0711f87e070793_20210924143659272.png


💬 代码演示:


#include <stdio.h>
int main()
{
    int a = 10;
    a = 20; // “=” 赋值  “==” 判断相等
    a = a+10; //1
    a += 10; // 2
    a = a-20;
    a -= 20;
    a = a & 2;
    a &= 2;
    //这些操作叫做 复合赋值符
    return 0;
}

0x04 单目操作符

❓ 什么是单目操作符?


📚 单目操作符,也就是只接受一个操作数的操作符。

160d5b97abd0fbcc3271efd95cdf3c3f_20210924143753411.png

💬 逻辑反操作 !


 
         


💬 按位取反 ~


int main()
{
    int a = 0;
    printf("%d\n", ~a);
    // ~ 按(二进制)位取法 
    //把所有二进制位的数字,1变成0,0变成1
    //整数a
    // 0
    // 00000000000000000000000000000000
    // 11111111111111111111111111111111  ~a
    // 数据在内存中存储的是补码
    // 一个整数的二进制表示有三种: 原码 反码 补码
    // 负数的计算  -1:
    // 10000000000000000000000000000001 (原码)
    // 11111111111111111111111111111110 (反码)
    // 11111111111111111111111111111111 (补码) -> 在内存中存的
    // 正的整数: 原码、反码、补码相同
    return 0;
}

💬 前置++


int main()
{
    int a = 10;
    int b = ++a; //前置++, 先++后使用
    printf("%d\n", b); //11
    printf("%d\n", a); //11
    return 0;
}

💬 后置++


int main()
{
    int a = 10;
    int b = a++; //后置++,先使用再++
    printf("%d\n", b);
    printf("%d\n", a);
    return 0;
}

💬 强制类型转换:


int main()
{
    int a = (int)3.14; //强制类型转换
    printf("%d\n", a);
    return 0;
}

0x05 逻辑操作符

📚 逻辑运算符或逻辑联结词把语句连接成更复杂的复杂语句


逻辑与:两个都为真即为真(and)


逻辑或:一个为真即为真(or)

1e41c9c8fa42757ae2b2f5dfd95d37ab_watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5p-g5qqs5Y-25a2QQw==,size_20,color_FFFFFF,t_70,g_se,x_16.png

💬 逻辑与 &&


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

💬 逻辑或 ||


int main()
{
    int a = 3;
    int b = 0;
    int c = a||b;
    printf("%d\n", c); //1
    return 0;
}

0x06 条件操作符

📚 条件操作符就是三目操作符


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


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

8303f30c1028f306282921da14865c52_20210924144231369.png

💬 条件操作符的用法:


int main()
{
    //exp1成立,exp2计算,整个表达式的结果是:exp2的结果
    //exp1不成立,exp3计算,整个表达式的结果是exp3的结果
    int a = 0;
    int b = 3;
    int max = 0;
    /* 等价于
    if(a>b) {
        max = a;
    } else {
        max = b;
    }
    */
    max = a>b ? a : b;
    return 0;
}


0x07 逗号表达式

📚 逗号表达式:逗号隔开的一串表达式。


逗号表达式是从左向右依次计算的。


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

d92b6fec36b4c4b3c22a0f81821ed40f_20210924144334662.png

💬 逗号表达式的用法演示:


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

0x08 下标引用操作符

📚  [] 就是下标引用操作符。


💬 演示:


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

0x09 函数引用操作符

📚 调用函数时,函数名后面的()就是函数调用操作符


💬 演示:


int main()
{   
    printf("hehe\n");
    printf("%d", 100);
    return 0;
}
相关文章
|
7月前
|
C语言
C语言初阶⑧(结构体)知识点和笔试题
C语言初阶⑧(结构体)知识点和笔试题
83 0
|
2月前
|
C语言
C语言学习笔记-知识点总结上
C语言学习笔记-知识点总结上
99 1
|
7月前
|
编译器 C语言
C语言进阶⑪(指针上)(知识点和对应练习)回调函数模拟实现qsort。(下)
C语言进阶⑪(指针上)(知识点和对应练习)回调函数模拟实现qsort。
57 0
|
7月前
|
存储 编译器 C语言
C语言初阶⑦(指针初阶)知识点+笔试题(上)
C语言初阶⑦(指针初阶)知识点+笔试题
52 0
|
7月前
|
算法 程序员 编译器
C语言初阶③(函数)知识点+编程作业(递归模拟strlen,pow)
C语言初阶③(函数)知识点+编程作业(递归模拟strlen,pow)
55 0
|
5月前
|
存储 编译器 C语言
|
6月前
|
编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)二
56 3
|
6月前
|
存储 编译器 C语言
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
C语言学习记录——操作符详解知识点选记(算术操作符、单目操作符、移位操作符、关系操作符、逻辑操作符、条件操作符......)一
45 1
|
5月前
|
前端开发 C语言
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
C语言08----注释扩展知识点,注释快捷键:ctrl+k,ctrl + C,取消快捷键 ctrl + K,ctrl + U
|
6月前
|
C语言
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)
C语言----关于二维数组传参的本质相关的知识点(数组指针、指针数组)