c语言的强大之一就是各种类型都可以相互转化,真的是没有不可转化的东西,这在其它语言里,实现起来,很麻烦,在这里,都是很简单的事,可见,c语言虽然简单,却是深藏着很多硬功夫。
1、char转化intchar类型转化成int类型,一想感觉不好弄,从1个字节转化成四个字节,那怎么弄?
然而,这却是c语言经常的 *** 作:
1 #include2、int转化char2 #include 3 4 int main() 5 { 6 char cA = 100; 7 printf("cA=%crn", cA); 8 int iB = 0; 9 iB = (int)cA; 10 printf("iB=%drn", iB); 11 12 } root@mkx:~/learn/convert# gcc convert1.c -o convert1 root@mkx:~/learn/convert# ./convert1 cA=d iB=100 root@mkx:~/learn/convert#
从1字节转化到4字节,还可以理解,c语言还可以进行更为危险的 *** 作,就是4个字节转化成1个字节,这个风险,只能程序员把控了,其实也是c程序经常遇到的事:
1 #include2 #include 3 4 int main() 5 { 6 int a = 100; 7 char b = 0; 8 b = (char)a; 9 printf("b=%drn", (int)b); 10 } ~ root@mkx:~/learn/convert# gcc convert2.c -o convert2 root@mkx:~/learn/convert# ./convert2 b=100 root@mkx:~/learn/convert#
这个 *** 作,其实风险挺大的,程序员要保证a的值为:-128~127,不能超出这个范围,这样,就会把这个范围的整形转化到char里面。
这里实际就是用到的c语言的强转功能,不管什么值,都是一块内存,可以用不同的类型的去解释,强转,就是把其它类型强制转化成当前类型,强制有风险,却也是功能强大的地方。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)