C语言【零碎基础知识】

基本数据类型(格式:类型 占内存大小 …)

  • 整形数据类型
    • 基本整形(int)2/4字节 一般在32或64位下是4字节
    • 短整型(short int) 2字节 注意 int 可以省略
    • 长整型(long int) 4字节 指定该类型的字面值时加l\L后缀 注意 int 可以省略,在vc++6.0中 long 与 int 都是占4字节
    • 双长整型(long long)8字节 注意 C99所增加的,很多编译器未实现
    • 字符类型(char)1字节
    • 布尔类型(bool) 1字节 注意 C99所增加的
  • 浮点类型(该类型的字面值默认为双精度类型)
    • 单精度(float)占4字节 有效数字6位 指定该类型的字面值时后缀加 f\F
    • 双精度
      • 双精度(double)8字节 有效数字15
      • 长双精度(long double)8/16字节(根据不同的编译器系统)有效数字15/19位 指定该类型的字面值时后缀加 l\L

有符号与无符号

  • 只有整形(包含字符型)数据可以加signed或者unsigned修饰符,实型数据(比如浮点型)不可以加
  • 如果定义变量时既未指定为signed也未指定为unsigned,则默认为有符号类型,比如int a 与signed int a等价
  • 表达式运算中如果同时存在有符号数和无符号数,则所有操作数应先自转化为无符号数,然后在进行运算
  • 对于字符类型在定义变量时,既不加signed,又不加unsigned,C标准并未规定是按照哪种方式处理,由各自编译系统决定

运算符(容易二义性的)

  • i+++j的理解:由于 ++ 相比较 + 运算符的优先级较高,所有i与++先结合运算,然后在与 j 做加法运算
  • %运算符两侧的操作数都必须为整型量,否则不合法
  • 强制类型转换符 (类型名)(表达式):(int)x+y 仅仅是先转换x为整型,然后在与y做加法运算,最好表达式要有括号
  • 复合赋值运算符:x*=y+3 等价于x=x*(y+3) ,因为 + 优先级高于 *= 运算符,所以会先运算y+3 。在a+=b类似的这种复合赋值运算时,b是包含若干项表的达式,则相当于它有括号
  • 赋值运算符的左侧应该是一个可以修改的“左值”,其意思是它可以出现在赋值运算符左边,且值是可以修改的,不是所有的数据都可以作为左值的,变量可以作为左值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值