Linux c基础中的基础

本文详细介绍了Linux C编程中基础的数据类型,包括char、short、int及浮点数的范围和表示,同时讲解了强制类型转换、常量的定义方式,以及变量类型和各种运算符的使用,如逻辑运算符、位运算符和赋值运算符等。
摘要由CSDN通过智能技术生成

数据类型(32位操作系统)

char

1个字节,8位
值域:-128~ 127 或 0~255
signed char :(-2^7) ~ (2^7-1)
unsigned char :0~2^8-1
正数:原码、反码、补码都一样
反码:原码取反
补码:反码加1

short

2个字节,16位
值域:-32768~ 32767或0~65535
signed short :-2^15 ~ 2^15-1
unsigned short :0~65535

int

4个字节,32位
值域:-2^31~ 231-1或0~232-1
signed int :-2^31~ 2^31-1
unsigned int :0~2^32-1

浮点

  • 单精度float:
    4个字节,32位
    精度:6~7

  • 双精度double:
    8个字节,64位
    精度:15~16

强制类型转换

  • 显示转化:(数据类型)变量名
    int a = 10;
    float f = (float)a;
  • 隐式转换
    注意:强制类型转换不会改变变量的数据类型

常量

  • 定义:在程序运行过程中,值不被修改
    12 ‘A’ 023 0x123 ”hello“

  • 整型常量:123 067 0x12

  • 字符常量: ’c‘ ‘G’
    用单引号引起来的单个字符(单单)
    ‘ddd’ -->不合法
    ‘\0’ ‘\t’ ‘\n’ ‘\’ -->合法

  • 字符串常量:
    用双引号引起来的,以’\0’结尾
    “hello world” “你好” ”9“

  • 标识常量:
    宏(define)
    #define 标识常量名 常量
    #define MAX 10
    注意:原样展开

  • 浮点常量:
    小数:0.125

  • 指数常量:
    形式:[+/-]M.N e/E [+/-]T
    注意:e/E前e/E必有数,e/E必为正数
    -1e0.7 -->不合法
    0.2e2 --> 0.2*10^2

变量类型

  • 一般形式:【存储类型】【数据类型】【变量名】
  • 存储类型:
    auto: 自动存储类型,可省,默认为auto
    register :寄存器存储类型,需要申请,申请失败自动转成auto
    static :
    1.局部变量:定义在模块内,作用在模块内,不赋初值,是个随机值
    2.全局变量:定义在模块外,作用整个文件,不赋初值,系统自动赋0
    3.static修饰局部变量:延长其生命周期,但是作用域不变,初始化时自动赋零;
    4.static修饰全局变量:限制其作用域,但生命周期不变;
    5.static修饰函数:仅在本文件中使用;
  • extern :外部引用

运算符

  • 根据操作数分类: 单目运算符、双目运算符、三目运算符
    &a a + b (a > b)?a:b

  • 算术运算符:
    + - * / %
    注意:
    除法(/):取整数部分,不进行四舍五入 8/3 = 2
    取余(%):浮点数不能进行取余

  • 逻辑运算符:
    && || !
    运算规则:
    0为假,非0为真
    1.逻辑与&&:两边为真才为真
    0 && 0 = 0
    0 && 1 = 0 有0为假,全1为真
    1 && 1 = 1
    2.逻辑或||:一边为真即为真
    0 || 0 = 0
    0 || 1 = 1 有1出1, 全0位假
    1 || 1 = 1
    3.非!:取反
    !1 = 0
    !0 = 1
    *短路法则:当编译器得到结果后,就不再往下执行

  • 关系运算符:
    < > <= >= ==

  • 位运算符:
    对二进制数进行运算
    & | ^ ~ << >>
    位与&:两边为真才为真
    0 & 0 = 0
    0 & 1 = 0 有0为假,全1为真
    1 & 1 = 1
    位或|:一边为真即为真
    0 | 0 = 0
    0 | 1 = 1 有1出1, 全0位假
    1 | 1 = 1
    异或^(生小孩符号):0代表女生,1代表男生
    0 ^ 0 = 0
    0 ^ 1 = 1
    1 ^ 1 = 0

  • 赋值运算符:
    =(右边的值赋予左边,不是等于!!!)

  • 复合赋值运算符:
    += /= *= ^= ~=
    a += b --> a = a+b
    a X= b --> a = a X b(乘号不便打出,用X代替)
    a <<= 2 --> a = a<<2

  • 递增递减运算符:
    递增运算符:++ -->操作数自增1
    递减运算符:-- -->操作数自减1
    a++ --> a = a+1
    ++a --> a = a+1
    a-- --> a = a-1
    –a --> a = a-1
    注意:加加在前,先加后用;加加在后,先用后加
    int a = 2;
    ++a;//3,a = 3
    a++;//3,a = 4
    a; //4

  • 地址运算符:
    & int a; &a ----> 获取a 的地址。打印 : %p
    &变量名

  • 逗号运算符:
    (表达式1, 表达式2, 表达式3,… ,表达式n)= 表达式n
    注意:从左往右依次计算,取最后一个表达式的结果作为整个逗号表达式的结果

  • sizeof运算符:
    求字节数
    sizeof(变量名/数据类型名);

  • 其他运算:
    ?:
    (a > b)?a++:++b --> 真前假后
    关于本文。1 2


  1. 不懂就自己敲一下,实践即真理 ↩︎

  2. 如有侵权,及时联系。 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值