C语言数据类型、表达式与运算符

本文详细介绍了C语言中的数据类型(包括基本类型如整数、字符、浮点数和布尔,以及构造类型),常量与变量的概念,不同类型之间的转换规则,表达式和运算符的使用,重点讲解了算术运算符、赋值运算符以及sizeof运算符的应用。
摘要由CSDN通过智能技术生成


一、数据类型

1、基本数据类型

1.整数类型

整数类型分为有符号的整数类型(默认signed)、无符号的整数类型(unsigned)

有符号类型(signed):最左边1位作为符号位剩余作为数据位,整数直接存放二进制,负数存补码(原码->反码->补码)
无符号类型(unsigned):直接存放数据对应的二进制形式

short :短整型,2个字节

int :整形 ,4个字节

long :长整型,8个字节

2.字符类型

字符类型分为有符号的整数类型(默认signed)、无符号的整数类型(unsigned)

char :字符型 ,1个字节

                'a'  == 97
                'A'  == 65
                '0'  == 48           
                '\0' == 0       

3.浮点数类型

浮点数类型均为有符号类型(signed)

float:单精度浮点数类型,4个字节

double:双精度浮点数类型,8个字节

4.布尔类型

bool true: 1 flase: 0

非0值均为逻辑真值
0值为逻辑假值

5.缺省类型

void :
搭配函数或指针使用,表示类型缺省

2、构造数据类型

二、常量与变量

1、常量

在程序运行过程中值不能被改变的量称为常量

1.整型常量

默认为 signed int

2.浮点型常量

默认为 double

3.字符常量

        转义字符: \
        '\''
        '\\'
        '\n'    换行符
        '\r'    回车符
        '\t'    横向制表符
        '\v'    纵向制表符
        '\b'    退格符

4.字符串常量

字符串末尾存在一个\0字符

5.标识常量

#define PI 3.1415

宏定义只是代码的替换,中间不进行任何数据计算的操作
宏在使用时能加括号就加括号

2、变量

在程序运行过程中值可以发生改变的量称为变量

注意:变量要先定义再使用

变量命名要求:
1.变量名只能由字母、数字、下划线构成,不能以数字开头
2.变量名不要与C语言关键字重名
3.变量名最好不要与库函数重名
4.变量名最好是见名知意

三、不同数据类型转换

1、显式类型转换(强制类型转换)

        (int)5.2
        舍弃精度变成5
        (double)5
        扩展精度变成5.0 

2、隐式类型转换

准则:低精度转换成高精度

同种类型: 所占空间越大,精度范围越高

无符号和有符号类型:无符号精度范围高于有符号类型

整数类型和浮点数类型:浮点数精度范围高于整数类型精度范围

            char    char    ->   int 
            short   short   ->   int 
            char    short   ->   int 
            float   float   ->   double 
            float   double  ->   double 
            float   char    ->   double 
            unsigned signed ->   unsigned 
            double  int     ->   double  

四、表达式

由运算符连接的一个或者多个常量变量所组成的式子

1.表达式一定有值
2.表达式一定有类型

五、运算符

1、算术运算符

    +       加
    -       减
    *       乘
    /       除
    %       取余(不能对浮点数操作)
    ++      自增运算符
    --      自减运算符

    i++     后置++      先用i,再让i++
    ++i     前置++      先让i自加,再用i

2、赋值运算符

左值 = 右值
左值:必须是变量不能是常量或者表达式
右值:可以是常量、变量或者表达式

    小数据放入大空间高位需要补位(有符号数补符号位、无符号数补0)
    大数据放入小空间直接截取数据低位(有可能正数截成负数,有可能负数截成正数)
    左值为浮点数类型,右值为整数类型时,会将整数类型转换为浮点数类型赋值
    左值为整数类型,右值为浮点数类型时,会将浮点数类型舍弃精度赋值给整数类型
    如果左值和右值空间大小一样,会将右值直接拷贝到左值空间中

3、逗号运算符

从左至右依次执行,将最后一个表达式的结果作为整体的结果

4、sizeof运算符

获得变量或者数据类型在内存中所占字节数

printf(“sizeof(short): %d\n”, sizeof(short));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值