1.4.2 转意作用
C 中,有一些字符,就是他的字面意思,比如 'n' , 'b' , 't' 。
也有一些字符,本身就是特殊含义的,比如: " , ', \
转义的本质含义是:字面转特殊,或者特殊转字面
1.1 字面转特殊:想输出‘’(我只想得到字面上的‘’就可以用反斜杠转意)
1.2 特殊转字面:这里是字面的n去显示,但是我们想要n字符对应特殊字符,就可以加上\变成换行符。
2. \r vs \n
2.1 问:回车和换行是一样的吗?是什么?
不一样。回车是指光标回到当前行的最开始。
换行是指光标移动至下一行。
我们一般讲的“回车”其实是回车加上换行。
在我们计算机语言中\n其实也是回车兼换行,想单独用回车就用\r就可以了。
2.2 打印出来d,为什么呢?超过四个元素就会报错,又为什么呢?
2.3 为什么等于4呢?
发现linux也是这样的?
//单引号是字符,双引号是字符串 #include <stdio.h> #include <windows.h> //不同编译器,会有细微的差别 int main() { printf("%d\n", sizeof(1)); printf("%d\n", sizeof("1")); //C99标准的规定,'a'叫做整型字符常量(integer character constant),被看成是int型 printf("%d\n", sizeof('1')); char c = '1'; printf("%d\n", sizeof(c)); system("pause"); return 0; }
在C语言中:char类型一个字节是没有错的,但是单引号1或者a是占4个字节,只是说我们一直是把一个整型的大小放进了char里面(赋值发生了截断)。也回应了我们之前说的,字符类型也就是整型。(C++是一个字节)
但是在“”中,大小就是按一个字节算的。
然后再回到之前的问题:为什么总是拿最后一个字符?
因为我们刚刚说到了,单引号里面是四个字节空间大小的,然后我们要放进char(一个字节空间大小)里面,就发生截断然后根据我们的大小端(这里都是小端),所以就拿低地位的数据即最后一个数据。
总结说:我们单引号括起来的字符在C语言是占4个字节的,但是放到char里面就会截断为1个字节。
2.4 为何计算机需要字符
计算机本质只认识二进制,那么计算机为何需要字符呢?直接全部二进制不香吗?
因为计算机是为了解决人的问题,可是,人怎么知道计算机解决了人的问题??你输出二进制结果,人能直接看懂吗?
所以,为何计算机需要需要字符,本质是为了让人能看懂。
那为什么又是英文的呢 ? 中文不香吗?
最早的计算机是美国人发明的,他们的语言是英语,大家想想,英语,不就是 26 个英文字母 + 一大堆标点符号组成的吗?
另外,计算机刚刚开始发明,人美国人只要能解决他们的问题就行,所以就有了现在的简单字符
计算机只认识二进制,而人只认识字符。所以,一定要有一套规则,用来进行二进制和字符的转化,这个就叫做 ASCII 码表
2.5 printf scanf格式化输入输出的补充
printf 格式化输出:就是把整型数据输出到显示器中,按字符的形式。
scanf 格式化输入:特定数据(字符)变成整数(%d),这就是格式成你想要保存到内存中想要显示的数据。
这是字符0
只有‘\0’才是真正的0。
3. && 和 ||
3.1 短路
上面的一个条件不满足,已经不需要在看后续的条件的情况,就叫做短路
注意:计算机都是从左向右扫描的。
4. 位运算
位运算符有: &(按位与) |(按位或)^(按位异或) ~(按位反,包括符号位)
提一下:
打印出来就是-1。
交换两个整数(之前文章详细说过这里就只再提一下)
#include <stdio.h> #include <windows.h> int main() { int x = 10; int y = 20; printf("before: %d,%d\n", x, y); x ^= y; y ^= x; x ^= y; printf("after: %d,%d\n", x, y); system("pause"); return 0; }
4.1 设置指定比特位为1
4.2 显示int的所有比特位
4.3 将指定比特位清0
例如将第6位清0:1001 0110 1011 1000 1111 1000 0111 1000
我们就需要 &= : 1111 1111 1111 1111 1111 1111 1101 1111
那怎么得到上面的数? 那就是:~(1<<(n-1))
补充:一个整型提升的问题
也就是说sizeof并不是在程序运算的时候计算的。
并且运算的时候会将数据进行基本的整型提升。
4.4 << 和 >>
即补什么取决于自身的类型,和内部保存的数据无关。
今天的内容就到这里了哈!!!
要是认为作者有一点帮助你的话!
就来一个点赞加关注吧!!!当然订阅是更是求之不得!
最后的最后谢谢大家的观看!!!
你们的支持是作者写作的最大动力!!!
下期见哈!!!