c语言学习day02

来源:互联网 发布:游族网络 林奇个人兴趣 编辑:程序博客网 时间:2024/05/14 02:17

第二天的记录,关于c语言的基本数据类型,进制转换和优先级的问题

在linux下gcc -S xxx.c 之后在vi xxx.s可以看汇编代码的

gcc -E xxx.c预定义

我的程序:

<span style="font-size:18px;">#include <stdio.h>int main() {int a = 1234.5;double b = 1.5e30;printf("a=%d\n", a);//只输出整数部分printf("b=%f\n", b);a = (int)1.5e30;printf("a=%d\n", a);printf("a=%x\n", a);//32位一共,按16进制输出return 0;}</span>

sizeof的应用:

<span style="font-size:18px;">#include <stdio.h>int main() {int n =10;printf("%i\n", sizeof(int));printf("%d\n", sizeof(n));</span><span style="font-size:18px;">printf("%d\n", sizeof(n = (n + 5)));printf("n=%d\n", n);//sizeof里的运算不被执行return 0;}</span>

宏以及const:

#include <stdio.h>#define DATE 20141006int main() {const double PI = 3.14;int const student_num = 21;printf("PI=%g, student_num=%d\n", PI, student_num);//PI = 3.15;对const类型的修改会出错return 0;}

逻辑运算:(&& 、||、 !、 >、 <、 >=、 <=)

位运算:在计算机存储中都是以补码存储的

#include <stdio.h>int main() {int m = -1;unsigned int n = -1;int a = 0x12, b =0x34, c =0x56, d = 0x78;printf("%d, %d, %d\n", ~20, ~-1, ~0);printf("%u, %x, %d\n", n, n, n);printf("%x, %x\n", n >> 3, m >> 3);//右移的时候有符号和无符号的区别是补1还是补零printf("%x, %x\n", n, m);printf("%x, %x\n", n << 3, m << 3);m = 0x12345678;printf("%x\n", (char)m);printf("%x\n", (char)(m >> 16));printf("0x%x\n", (a << 24) | (b << 16) | (c << 8) | d);//将之组合成一个intreturn 0;}


心得体会:

在编写代码的初期一定要形成良好的编码习惯,一定要有好的层次,这个对以后有好大的帮助,毕竟人人都喜欢规范的东西,不喜欢杂乱。

知识点总结:

要注意的是计算机存储中所有数字都是按补码存储的。。。






0 0
原创粉丝点击