第一次接触linux,命令行界面用起来很不适应,感觉还是要先了解一下基础的命令行指令再来编程学习。
----------------------------------------------------
今天学习了一些linux的相关命令,感觉打开了新世界的大门,能够不用鼠标一直敲敲敲的感觉真的很爽啊啊啊!
之前写的linuxC编程的部分学细细感受没有保存为草稿,很难受。今天熟悉了linux常用命令,明天继续努力学习!
-----------------------------------------------------
在算数表达式一章中,有意思的时float型和double型精度的转化,在我的印象中,float型的精度更低,二double型的精度更高,可是书上说
书上又说
难道混合数据类型运算时不是向精度更低的转换吗?虽然这样会损失一定的精度,是我记错了?查阅资料得:
/*
比如整形和实型做混合运算(这里我说的运算是合法的运算,不会是取余这样对操作数有数据类型要求的运算),得到的结果是自动由精度低的或占位数低的数据类型向高的数据类型做转换,也就是上述问题得到的结果是实型。
*/
龟龟原来一直以来是我理解错了,不应该不应该。在计算时会向上转换
和舍友讨论了一下int型占几个字节,我不假思索地说是4个,舍友却说不一定。翻了一下CSDN:
The C Programming language这本书,里面有一句话是这样的:Each compiler is free to choose appropriate sizes for its own hardware, subject only to the restriction that shorts and ints are at least 16bits, longs are at least 32bits, and short is no longer than int, which is no longer than long.意思大致是编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)。
来自 https://blog.csdn.net/littlehero_121/article/details/97648887
接下来printf的语法让我大吃一惊!
试验了一下
太猛了!之前一直都不知道
putchar函数输出一个字符,getchar函数获取一个字符
scanf函数在遇到制表符,空格键和Enter键时,系统认为是一个变量输入的结束
-----------------------------------------------
有意思的是一道题:不借助中间变量交换两个变量的值:
int a=1,b=2;
a=a+b; //a=3,b=2
b=a-b;//a=3,b=1
a=a-b;//a=2,b=1
很容易想到解法2:
a=a*b;
b=a/b;
a=a/b;
||的懒惰求值之前考试还考过,只要有一个运算量的值为真,则以后的表达式都不会被执行
switch语句的表达式所计算的结果必须为整形,常量表达式也必须是整形数值,且不能为变量
gcc最基本的用法,保存一下
随机数生成的示例,最近实验经常有用到:
关于形参和实参的个人感悟:形参设成什么样都无所谓,只要和实参的类型一样,实参就能在函数被调用时把数值传给形参。在形参被调用时内存会为了形参开辟一块控件,在空间中赋上实参的值,在函数调用结束时这块控件被收回。而这个时候存储实参的内存单元并没有受到变化。
先睡了,明天早点起!