第三章数据和C
C::程序离不开数据
3.1示例程序
3.1.1程序中的新元素
//配图给了两把键盘是什么操作。。。
3.2变量与常量数据
3.3数据:数据类型关键字
看到下面补充了“位、字节、字”,突然想到老师上课:“这位同学回答一下,啊,这两个int指针类型变量占了多少个,啊,如果我们用sizeof()
函数的话,会返回多少啊,啊?” emmm这个问题在Ch*na是挺滑稽的,因为老师用的还是32位机器,寻址能力导致sizeof(anytype*)
都等于4。。。这个问题我就不太好回答她,交给了下一同学后,同学就回答是4,现在还有人用32位的笔记本电脑吗。。。
3.3.1整数和浮点数
话又可以反过来说,如果你想了解自行车是怎么构建的,不如先骑骑看,(所以写出第一个操作系统的,又或者是造出第一辆自行车的人非常非常厉害)
3.3.2整数
3.3.3浮点数
这玩意,永远是歪的
3.4C语言基本数据类型
这本书一直在谈论老式编译器,看这本书的人有几个会还在用老东西的。
3.4.1int类型
1.声明int类型
2.初始化变量
3.int类型常量
4.打印int值
5.八进制和十六进制
C::许多程序员都很喜欢使用八进制和十六进制。(百度上没有找到证据。。。)
6.显示八进制和十六进制数
C::回忆一下,在某些集成开发环境(IDE)下编译的代码中插入getchar();语句在执行完毕之后不会立即关闭执行窗口。
这句话插在这里我没有太看懂。。。
3.4.2其他整数类型
这个signed可强调有符号类型的意图,下次要用用看,刷oj出生的根本不知道可读性是啥(非常糟糕)。
1.声明其他整数类型
2.使用多种整数类型的原因
3.long常量和long long常量
4.打印short、long、long long和unsigned类型
C::注意,虽然C允许使用大写或小写的常量后缀,但是在转换说明中只能用小写。。
3.4.3使用字符:char类型
UTF-16BE好棒好棒的(因为中文占两个字节输出的时候也占两个位宽),但是UTF8天下第一!!!用vs写代码的时候还是调成UTF-8比价好一点。
1.声明char类型变量
2.字符常量和初始化
3.非打印字符
蜂鸣器是一个非常滑稽的东西,不是先学Linux再学C的人一般是遇不上这个问题的,很多的硬件运行程序是的\a都是用扬声器模拟的而不是真的蜂鸣器,又写更过分的就干脆不给你响,当你再Linux真的终端(补正:ctrl+atl+f区出的假的终端)中\a的时候,会有一个非常响亮的声音,就算是笔记本都有,把声音关了都没有用。滑稽的朋友上课时比较皮,在真的终端(补正:ctrl+atl+f区出的假的终端)用vim写c++然后不知为何有大量的\a,导致整个教室都停下来听他的蜂鸣器。
//可以在C中嵌入形如’\007’这样的ASCII码(我还真的没有用过)。
4.打印字符
printf()函数中的转换说明决定的是显示方式,也就是格式化方式。
5.有符号还是无符号
这里signed
这个东西居然派上用处了!看来还是我水平有点弱。
3.4.4_BOOL类型
3.4.5可移植类型:stdint.h和inttype.h
vs 2017 64位Windows10下 long
和int
是一个限制,intmax_t
和long long
一个限制。
3.4.6float、double和long double
还有long double
这种操作。。。这里有写到国家债务用浮点数,我感觉是不妥的,记得刚刚开始学C两个礼拜的时候就被逼着写高精度的优化了,喵喵喵?为啥不要用呢,可以下一个vs然后printf(“%d”, 33.333333)然后把鼠标光标放到3……3上去看看实际值然后多打个3或是删掉个3。
1.声明浮点型变量
2.浮点型常量
怎么样的人会想到同时省略整数和小数部分,我挺想和他交流一下心得的。
3.打印浮点数
4.浮点数的上溢和下溢
//试一试inf或者nan蛮好玩的
3.4.7复数和虚数类型
c++OOP课程第二课作业居然是编写一个复数类,这我没有想到,为什么不适用别人写得那么好的东西非要自己写一些自己用不上的类。。。难不成学习应该从机器码开始学起?
3.4.8其他类型
学习了近半年后大叹气道:gtmd强数据类型。
3.4.9类型大小
这里有谈到sizeof
建议去看那片我不想写下去的文章中是怎么说的……到每一个环境都要试一试。
3.5使用数据类型
3.6参数和陷阱
3.7转义序列示例
高贵的Mac是不一样的/滑稽
3.7.1程序运行情况
3.7.2刷新输出
3.8-3.11小结
第三章因为内容枯燥,本文作者水平着实不高没有高见。故结于此。