c语言学习day02

第二天的记录,关于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 20141006
int 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);//将之组合成一个int
	return 0;
}


心得体会:

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

知识点总结:

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






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值