C语言基础(编译器、变量与常量、进制转换、流程控制)

C语言程序员值得一看的书
《C语言陷阱和缺陷》《C和指针》《C专家编程》
《C程序设计语言》《C primer Plus》《失控》
《科技想要什么》《必然》《白说》

编译器介绍:
编译器就一个特殊的程序,把负责C代码(文本文件)编程成可执行的二进制文件
它由:预处理器、编译器、链接器组成
常用的参数:-E预处理 -c -S -o -std指定标准 -l额外加库 -D编译时定义宏 -Werror把警告提升为错误 -Wall显示错误
《程序员的自我修养-链接、装载与库》
数据类型:
整型:
Unsigned、Signed
Char,short,int,long,long long
实型:
Float,double,long double
字符:
char
布尔:
Bool
取值范围:
Signed:
Char -128~127
Short -32768~32767
Int
-2000000000~2000000000
Unsigned:
Char 0~255
Short 0~65536
Int 0~4000000000

各类型的字节数:
Char,short,int,long,long long,float,double,long double
1 ,2 ,4 , 4/8 ,8, 4 8 12/16
各类型的占位符:
Signed:char,short,int ,long,long long
%hhd %hd %d %ld %lld
Unsigned: char,short,int, long,long long
%hhu %hu %u %lu %llu

float,double,long double
%f %lf %llf

进制转换:
为什么需要二进制:现在的计算机是依靠大规模的集成电路构成,计算单元只能识别高低电流这种数据,因此只能使用二进制数据
为什么需要八进制:为了方便记录二进制,由于历史原因八进制数据还在使用
为什么需要十六进制:相当于升级版的八进制,由于计算机的高速发展八进制已经无法满足需要
十进制转换成二进制:
求余:把十进制数据不停的用2求余,逆序记录求余的结果
求权:128 64 32 16 8 4 2 1
二进制转换成十进制:
2的不同次方相加
二进制转换成八进制:三位二进制转换成一位八进制
例10111101 分成10 111 101 =275
八进制转换成十进制:275=288+7*8+5=189
二进制转换成十六进制:四位二进制转换成一位十六进制
1011 1101=0xbd
C语言中的写法:
0b10111101 二进制
0275 八进制
0xbd 十六进制

数据在内存中是如何存储的:
数据分为原码、反码、补码,内存中存储的是数据的补码
原码:数据直接转换成的二进制(无论正负)
反码:将原码按位求反得到反码
补码:
正:原码=补码
负:反码+1

补码:10111101 char(看有无符号)
反码:10111100
原码:01000011 -67

常量与变量
常量:程序运行过程中不可改变的数据
字面值:
100 int类型
100u unsigned int
100l long
100lu unsigned long
100ll long long
100llu unsigned long long
3.14 double类型
3.14f float
3.14lf long double
“hello”
枚举值
宏常量
具有const树型的被初始化过的全局变量
变量:类型 变量名; 注意:曲明规则,见名知意
容器、数据

流程控制
If else ,switch,for,while,do while,break,continue,goto
注意:大括号不要省略,分号不要多加

C语言编写规范中经典的版本,想进这两个公司的童鞋可以在网上查看
《C语言编码规范-华为》
《C++语言编码规范-谷歌》

如果判断xx类型变量是否是“零值”?
Float,bool,int,char,int* p;
if(0.000001>f&&f>-0.00001)
if(flag)
if(0 ==num)
if(‘\0’ == ch)
if(NULL == p)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值