目录
1.int与long int 在申请空间大小上真正的区别
众所周知,int是用来定义整型变量的,long int以及short int皆为如此,只是向内存申请空间的时候,申请的空间大小不一样,这个时候问题来了,你还记得在空间大小上,有哪些不同吗?
这个时候大家就会发现,欸?!为什么int和long int在申请空间大小的字节数怎么是一样的?
下方的无符号也一样,在申请空间大小上除short int ,其他也无变化。
其实,long int 申请空间只是最少为4,最大为8,所以字节数为[4,8]这个区间的
而int和short则为固定的4字节与2字节,看到这里,是否有茅塞顿开
2.二进制八进制十六进制等等你真的了解了吗?
所有学过甚至没学过c语言的人应该都对二进制有了解,而前者才了解八进制与十六进制。
二进制:简而言之,就是满二进一,所以在二进制中,是不会存在1以上的数字的
八进制:与二进制基本相同,满八进一,是不会存在8以上的数字的
十六进制:这个与前两者就有很大区别了,再满了9之后,10~16的数字都会被a~f的字母代替,例如11是b。
而在面对二进制与八进制或者十六进制时,我们常常不能很好的计算出其换算后的十进制数字,在这里,可以提供一种比较好算的方法
公式:这是一个x进制数字:yuiop...一共n位 其代表的十进制数字计算:x的(n-1)次方乘y加上x的(n-2)次方乘u以此往后推
例:1.这是一个二进制数字1111
从左往右数第四个1为1*2的3次方等于8,第三个1为1*2的二次方等于4,第二个1为1*2的一次方等于2,第一个1为1*2的0次方等于1,将这几个结果相加为15,则15为二进制1111代表的十进制数字
2.这是一个8进制数字123
以例1为参考,从左往右数第三个一为1*8的二次方......以此类推,该数字代表的十进制数字为83
:
配合上图解,应该更容易看懂
3.传递数组的数据时,需要注意的部分
在想要实现某些目的时,经常需要定义数组来完成,而在这个过程中,对于数组中的数据或者整个数组包含的数据的传递有着许多必须注意的地方
(1)在传递数组时,数组名并不能传递整个数组,他只是传递数组的首个元素的地址,所以如需计算数组长度并在函数里使用,只能在函数外计算完毕并以实参传递给函数运用
(2)用strlen来计算数组长度时,读取到\n才停止
(3)计算字符串除外的数组长度时,可用sizeof(数组名)/sizeof(数组名[0])来计算数组长度