C语言的数据结构

数据类型:基本数据类型;构造数据类型;指针类型;空类型。

       1、基本数据类型:不能再分解为其他类型,如整型(int);字符型(char);浮点型(float、double);枚举(enum)

                 ①、整型(int):十进制;八进制、十六进制

                            a、十进制:无前缀,其数码为0~9;

                            b、八进制:必须以0开头,数码取值为0~7;

                            c、十六进制:必须以0x或者0x开头,数值取值为0~9,A~F或a~f;

                                      十进制转换成八进制或十六进制采用除8(除16)取余法

                                      十进制常数158(十进制为158)、258000L(十进制为258000);

                                       八进制常数012L(十进制为10)、077L(十进制为63)、0200000L(十进制为65536)

                                       十六进制常数0x15L(十进制为21)、0xA5L(十进制为165)、0x1000L(十进制为65536)


                 ②、字符型(char):以ASCII码的形式存放


                        char a, b;

                         a = 120;

                         b = 121;

                         printf("%c,%c\n",a,b);

                         printf("%d,%d\n",a,b);

                                      定义a,b为字符型,当格式符为“c”时,对应输出的变量值为字符,当格式符为“d”时,对应输出的变量值为整数


                 ③、浮点型(float。double):只采用十进制,有2种形式:十进制小数形式,指数形式


                            a、单精度型(float):精度6,比特数32(4)

                            b、双精度型(double):精度15,比特数64(8)


                 ④、枚举(enum): 如enum NUM={1,2,3} 新创造

输出结果:

 

           该程序是以四种格式输出整型变量a的值


数据之间的转换规则:

1、若参与运算量的类型不同,则先转换成同一类型,然后进行运算;

2、转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量装成long型后再进行运算;

3、所有的浮点运算都是以双精度进行运算的,及时含有float单精度的梁运算,也要先转换成double型,在做运算;

4、char型和short型参与运算时,必须先转换成int型;

5、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换成左边量的类型。

       类型自动转换的规则:

                                      double

                                         ↑

                                       long

                                          ↑

                                     unsigne

                                          ↑

                                         int

                                            ↖

                                                    char,short

 

 #include<stdio.h>

int main(int argc, int **argv)

{

            float f = 5.75f;

            printf("(int)f = %d, f  = %f\n",(int)f, f);

            return 0;

}

        F虽然强制转换成int型,但只在运算中起作用,是临时的,二f本身的类型并不改变。因此,(int)f的值为5而f的值仍为5.75.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值