学习感想
今天一大早起来就开始看(肝)鹏哥的视频,三个小时半啊!!!从早上8点多到现在快13点,知道这三小时半我怎么过的吗?呜呜呜呜!但是终于坚持学完了这一个视频。这一次视频还是讲的很基础的内容,之前自己也涉及过,但也学到了不一样的东西,比如讲到常量时,不仅提到了我之前学过的常变量和定义标识符常量,还提到了枚举常量,这个是自己之前虽然听过,但是其实还是很陌生的东西,听了之后感觉还挺简单的,现在自己在学校的项目组里老师也提到过这个,本来就想学习一下,但是鹏哥讲的是真的细,帮我搞懂了。虽然讲的很多都是自己之前学习过的,但其实自己收获还挺多的,一一列举一一下
学习收获
比如字符串,之前感觉a[]="a,b,c"和a[]={a,b,c}感觉其实应该差不多,但是它两之间其实就差个最后的”\0“这个结束标识符的区别
//字符串
int main()
{
char arr1[] = "abc"; //数组
//"abc" -- 'a','b','c','\0' --'\0'字符串的结束标志
char arr2[] = { 'a','b','c','\0'};//加一个0
//a - 97
printf("%s\n", arr1);
printf("%s\n", arr2);
return 0;
}
如果arr2[] = { 'a','b','c','\0'};你后面不加0或"\0",则
会输出这个
会把计算机烫死哈哈哈哈哈!
加了0或“\0”就正常输出
这个点其实自己应该知道,但是并没有过多在意,现在重新过一遍就好多了
还学到了转义字符除了\t,\n这两个自己之前经常用的,也学了些自己不熟悉的,比如\x16,将十进制的16转为16进制,之前自己或许不懂,但自己在大二学习了数电,数电课上有教进制间的转换,所以这对自己也不算很难吧!
代码如下:
int main()
{
printf("%c\n", '\x61');//\x61的意思是将十进制的61转化为16进制
//6*16^1 + 1*16^0 = 97 对应ascii码为a,a,a相差32
return 0;
}
接下来还学了些有意思的东西,运算符,除了常见运算,还学习了移位运算符(左移<<,右移>>)、位操作符(&与,|或,^异或),这都是对于二进制数进行操作的运算符,而计算机本身其实更擅长二进制计算,所以其实用这些二进制操作符应该更快一些,但是对于人而言十进制更简单理解。
学习归纳
学习的东西大致如下:
scanf 和scanf_s的区别
常量
- 字面常量
- 常变量
- #define定义标识符常量
字符串类型
转义字符
注释
选择语句
循环语句
函数
数组
运算符
- 位运算符
- 赋值运算符
- 单目运算符
- 双目运算符
- 三目运算符