C语言学习入门到精通之学习笔记(三)

基本数据类型

    常量:运行过程中数据不可变

    变量:运行过程中数据可被改变

    标识符:如类型名、变量名、函数名

    1、整型

         long           4字节        范围:无符号 0-2的32次方-1    有符号 -2的31次方  -  2的31次方-1

         short          2字节    

         int             通常是4个字节,但不同的平台长度不同 

    

         signed       有符号      代表最高位当符号使用

         unsigned   无符号       代表最高位当数字使用

        

         常量: 234  默认为整型 (而不是char或short 这点需要注意)

                    234L  long类型 (长整型)

                    234U 无符号int类型

                    234UL  无符号long型

         进制:

                    二进制    在代码编写  无法直接表达    补充:0b101010110在代码中时无法表达的,很大一部分人都不注意这一点

                    十进制    123

                    八进制    0123               0 作为区分

                   十六进制 0x123              0x 作为区分

         进制转换: 十进制转其它进制 用10进制数除以进制,余数是转换后的数,商继续除进制,又有余数向前排列,直到商为0止
                          其它进制转十进制 用前面的位乘进制数,和后面的位相加,就变成了后面位的十进制,直到最后一个位计算结束   


         例子:

                  ?下面的数字哪些是长整型
                   721387821387983  0L  0xFFFFFFFFFFF 01234234252341324               
                   0L是长整型,其它都默认int
       
                   ?下面哪些常量的写法是正确的
                   2341234  0x9fkw8sw 032913  0432
                   032913 八进制中,逢8进一,所以不可能包含8以上的数
                   0x9fkw8sw 八进制中,逢16进一,所以不可能包含16以上的数

         有符号和无符号内存结构:

                   所有的数据结构在计算机中都是以补码方式存储

                   码原: 能够代表数据的2进制

                   反码: 原码2进制数取反

                   补码: 在反码的基础上+1

                   例:  7                  0b0000 0111  正整数  原码就是补码

                           -7                  0b0000 0111  //7

                                                0b1111 1000  //反码

                                                0b1111 1001 //补码 -7 也是249    有符号   

                   总结:原码是为了方便人认识数字的习惯而定义的表现方式,例如上面的例子: 正数7的原码的二进制数是0b0000 0111    -7的原码的二进制数也是0b0000 0111 ,而它们的补码是不同,补码是计算机真实存储数据时的格式。   

         变量:

                 定义: 类型 变量名[=值];

                 类型的作用,指定内存的大小,指定当前变量保存的数据类型,而变量只是这块内存的别名

                 初始化: 即分配内存的同时赋值


    2、实型

          double    双精度    8字节    小数点后15-17位

          float       单精度     4字节   小数点后6位

          常量 :

                    2.3    默认为double

                    2.3    单精度

                    2.3e+0 指数 2.3*10的0次方

    3、字符

         char    1字节    本质是无符号整型    0-255

         常量    ‘a’         一个字符        本质是ASCII编码,一个字节

         字符:用单引号括起来的一个符号

         字符串:用双引号括起来的字符序列,以\0结束(字符串是常量)

                      例:“asda” 有5个字符,包含一个\0     

         转义符:

                    单引号    ‘ \' ’     是一个字符

                    双引号    ' \" '    

                    tab 键     ‘ \t ’

                    退格键    ‘ \b ’

                    警铃       ' \a '

                    回车       ‘ \r ’

                    换行       ' \n '

                    8进制  '\ddd'  必须是三个位 d代表一个8进制位的数
                   16进制 '\xhh'  必须是2个位  h代表一个16进制位的数

         

          字符集:

                       ASCII 0-127数,代表要绘制的字符图片的编号 '\0'就是0编号
                        '\0' == 0==NULL
       
                      GBK   中国大陆字符集
                      BIG5  台湾 \香港、澳门、新加坡、美国
                      uncode  utf-8    qt android等都使用utf-8字符集
                      utf-16
                      utf-24
                      utf-32  
               
                      'A' ==65 == '\x41' ='\101' == 0x41 == 0101
       
                      字符的算术运算
                       'A'+2;
       
                      '8'+2; //56+2
                      8+2;  //8+2
                      "8"+2  //地址+2  字符串本身是第0个字符的地址  指令参数输入的是字符串
                      "asdf" 值是a所在内存的地址      注意:字符串是常量,不能通过该内存地址修改字符串的值

你可能感兴趣的:(c语言学习)