首页 > 其他分享 >《跟着星仔学C语言》第二章 类型、运算符与表达式

《跟着星仔学C语言》第二章 类型、运算符与表达式

时间:2022-09-06 21:26:01浏览次数:120  
标签:初始化 com long C语言 运算符 2.3 2.7 星仔学

02_0100 2.1变量名 2.2数据类型及长度

2.1变量名/函数名
    1.字母(含_)与数字组成的序列
    2.不建议把_作为变量或者函数开头(可能会和编译器冲突,以微软的_strlwr函数举例)
2.2数据类型及长度
    signed与unsigned
        char, short, int, long有signed与unsigned
        float与double没有signed与unsigned

    讲解数的表示
        计算机中的数都是用补码表示
        如何算补码:
            正数
                正整数的补码是其二进制表示,与原码相同.
            负数
                求负整数的补码,将其原码除符号位外的所有位取反(0变1,1变0,符号位为1不变)后加1。


代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=16

02_0200 2.3常量

2.3常量
2.3.1 数字常量
数据类型        VS表示方法        LINUX表示方法        宏定义
long        L        L        LONG_MAX
unsigned long        UL        UL        ULONG_MAX
long long        i64/LL        LL        LLONG_MAX
unsigned long long        ui64/ULL        ULL        ULLONG_MAX
float        f        f        FLT_MIN
double        无        无        DBL_MAX
2.3.2 八进制/十六进制
8进制数用0开始 linux下的权限多用这种方式表述
16进制用0x开始
2.3.3 ASCII码及字符转义
1.什么是ASCII码
    答:简单的说,就是一张表,用于表示一个数字和一个字符的一一对应关系

2.3.4 C语言转义字符

2.3.5 常量表达式
#define MAXLINE 1000
char line[MAXLINE + 1];
2.3.6 字符串常量
"hello,world"
"hello," " world"
"hello"\
" world"

重点,字符串常量不可以修改!!!
2.3.7 enum 常量
1.enum占用几个字节?
2.enum会检查重复吗? #define会检查吗?

代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=17

02_0300 2.4声明 2.5算术运算符 2.6关系运算符与逻辑运算符


2.4声明
    1.先声明再赋值/声明时赋值
    2.如果不是自动变量,则只进行一次初始化.默认情况下,外部变量与静态变量被初始化为0
2.4.1 全局/静态变量的初始化
    1.如果初始化为0,编译后的大小不会增加,证明初始化为0,编译器采用了简单的方法标识为初始化为0
    2.如果初始化为其他值,编译后的大小会增加,初始化的内容直接放在exe里面
    3.不使用的静态变量可能会被编译器优化掉,具体看编译器的实现
    总结:C语言中,全局变量/静态变量在程序执行前已经初始化
2.4.2 const限定修饰

2.5算术运算符
    +,-,*,/,%
2.6关系运算符与逻辑运算符
    > >= < <= == !=
逻辑非运算符!的作用是将非0操作数转换为0,将操作数0转换为1
    int getline(char s[], int len)


代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=18

02_0400 2.7类型转换 

2.7类型转换
2.7.1 数字运算时自动转换
1.VS中,int 向下转到char/short等并不会出编译警告
  GCC干脆就不给警告?

2.有符号与无符号比较时的警告
2.7.2有符号和无符号比较时的自动转换
我的理解,自动转换为无符号数
2.7.2 赋值自动转换

2.7.3 函数传参自动转换

2.7.4 强制转换

2.7.5 转换表
         char        short        int        long        long long        float        double
char                                                               
short                                                               
int                                                               
long                                                               
long long                                                               
float                                                               
double                                                               
2.7.5字符串转换
1.字符串转数字
2.字符转大小写
3.判断是不是数字

代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=19

02_0500 2.8自增运算符与自减运算符

2.8自增运算符与自减运算符
2.7.1 自增自减的本质论(从汇编语言看起)

2.7.2 练习squeeze和any函数
如何优化?

代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=20

02_0600 2.9按位运算符

2.9按位运算符
2.9.1 C语言提供了6种操作运算符供整数操作
1.&   |   ^  <<  >>   ~
2.最简单的加密算法
真值表
&        0        1
0        0        0
1        0        1

|        0        1
0        0        1
1        1        1

^        0        1
0        0        1
1        1        0

~        0        1
         1        0

2.9.2 算术移位与逻辑移位

2.9.3 与机器字长无关的写法

代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=21

02_0700 2.10 赋值运算符与表达式 2.11 条件表达式 2.12 运算符优先级与求值次序

2.10 赋值运算符与表达式
expr1 op= expr2 等价于 expr1 = (expr1) op (expr2)
2.11 条件表达式
(n > 0) ? f : n 是浮点类型,与n是否大于0无关
2.12 运算符优先级与求值次序
x = f() + g(); 没有规定f和g的运行顺序
printf("%d %d\n", ++n, power(2, n)); 没有规定先计算++n还是power
a[ i ] = i++ //让人不愉快的代码书写
代码:http://q1024.com/p/item.php?u=krc
视频:https://www.bilibili.com/video/BV12L4y1Y76R?p=22

 

标签:初始化,com,long,C语言,运算符,2.3,2.7,星仔学
From: https://www.cnblogs.com/xingzaicpp/p/16663319.html

相关文章

  • 《跟着星仔学C语言》第一章 导言
    01_11001.1入门1.2变量与算术表达式1.1入门1.2变量与算术表达式  摄氏度与华氏度的转换代码:http://q1024.com/p/item.php?u=krc视频:https://www.bilibili.com/v......
  • C语言学生选课系统
    C语言学生选课系统十、学生选课系统假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得......
  • 4:运算符
    运算符运算符的分类算术运算符关系运算符逻辑运算符位运算符赋值运算符杂项运算符算术运算符#include<stdio.h>intmain(void){//算术运算符in......
  • 运算符优先级
    运算符优先级一元运算符里面的逻辑非优先级很高逻辑与比逻辑或优先级高......
  • 连接和三元运算符
    字符串连接符的运用:""+后面的连接,前面的运算;inta=10;intb=20;System.out.println(a+b""+);System.out.println(""+a+b);System.out.println(a+b+""+a+b);*/三元运算符:x......
  • Python22-逻辑运算符
    逻辑运算符逻辑运算符经常和关系运算符一起使用,通过逻辑运算符来连接多个关系运算符参与的数据:主要就是bool类型的数据比较之后的结果是:bool类型#与and一假俱......
  • Python21-关系运算符
    关系运算符也称为比较运算符参与的数据:主要就是数值a=100b=300c=200d=100print(a>b)#Falseprint(c<b)#Trueprint(a==d)#Trueprint(......
  • C语言:随机访问fseek()和ftell()
    随机访问fseek()和ftell()有了fseek()函数,便可把文件看作是数组,在fopen()打开的文件中直接移动到任意字节处。下面代码演示了fseek()和ftell()的用法:#include<stdio.h>......
  • 运算符
    运算符Java语言支持如下运算符:算数运算符:+,-,*,/,%,++,--赋值运算符:=关系运算符:>,<,>=,<=,==,!=,instanceof逻辑运算符:&&,||,!位运算符:&,|,^,~,>>,<<,>>>(......
  • (鹏哥C语言)C语言学习记录1
    作用域:局部变量的作用域:就是局部变量所在的局部范围全局变量的作用域:整个工程。(不同文件之间需要声明一下变量)执行性代码必须放进大括号里。生命周期:变量的生命周期:变......