c语言基础01

gcc编译过程

在Linux中,C程序的编译总过程

gcc -E test.c -o test.i     //预处理阶段,生成编译文件

gcc -S test.i -o test.s   //编译阶段,生成汇编代码文件

gcc -C test.s -o test.o  //汇编阶段,生成链接文件

gcc test.o -o test    //链接阶段, 生成可执行文件

可以合起来,一句代码

gcc test.c   -o  test   //直接生成可执行文件test 
./test        //执行可执行文件

或者:

gcc test.c      //默认结果为a.out 
./a.out         //执行可执行文件

数据类型

整数:
int      //    4字节      在内存中占32位         所以大小为 -2^31到2^31-1 
short    //   2字节
long     //    8字节
浮点数:
float          //4字节
double       //8字节
字符:
char         //1字节

~~~~~~~~~
番外:
int的范围为 -128 ~ 127
最小值为10000000 //-128 补码中,最高位的符号位不一定是绝对的了,可能会因为加一而导致符号位进位
最大值为01111111 //+127
最大值加1 =最小值
// 127 +1 = -128
~~~~~~~~~~
番外:
计算机中的数据都是以补码存储的
好处:1,统一了正零和负零
正零:0000 0000 的补码为0000 0000
负零:1000 0000 的补码为0000 0000
2,会将减法用加法表示
例如: 9-6
9
原码; 0000 1001
反码: 0000 1001
补码: 0000 1001
-6
原码; 1000 0110
反码: 1111 1001
补码: 1111 1010

加法:
补码: 0000 1001
补码: 1111 1010
\ = 0000 0011 //为+3

用补码表示会有bug,
在存贮无符号数或者八进制,十六进制时,最高位被1占有时,存储时以正数存入,取出时会以补码转为原码输出,导致错误,如下:
在这里插入图片描述

类型转换

根据上面的数据类型大小,
小转大直接转
如:
int num = char c ; //1字节转换为4字节

大转小时,使用强制转换
如:
char n = 'c' ;
char c = (int)n;  //使用  (int) 强制类型转换

占位符

%d  整数
%f   float浮点型
%lf   double浮点型
%s   字符串
%c    单个字符
%p    地址类型,指针的值

%3d  整数   宽度为3位 ,前边宽度不够时,用空格补齐
%03d  整数   宽度为3位 ,前边宽度不够时,用0补齐
%.2f   字符类型 小数点后保留两位
%u  十进制 无符号整数
%x   十六进制的整数
%o   八进制的整数

转义字符

转义字符:

\n ==换行
\t==tab,空格
\r==回到行首符号
\\==\
\'=='
\''=="
\a==发出警报
\0==字符串结尾符
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值