第三章 数据和C

3.1 示例程序

int num;

scanf("%d",&num); 格式化接受控制台用户输入指定数据信息保存到定义的变量中。

      (1)程序中的新元素

            %d ---> int     %f ---> float     %s ---> char[] 

3.2 变量与常量数据

...

3.3 数据:数据类型关键字

最初K&R给出的关键字                   C90标准添加的关键字                   C99标准添加的关键字

int                                                     signed                                          _Bool

long                                                  void                                              _Complex

short                                                                                                     _Imaginary

unsigned

char

float

double

位bit  0/1  机器码,计算机最小记忆单位。

字节byte = 8*bit,一个字节等于8个位(比特位),计算机最小存储单位。

字word,计算机执行能力,x8bit/x16bit/x32bit/到现在普及的x64bit操作系统,指的是计算机一次可以运算操作多少位数据的能力。

      (1)整数和浮点数

      (2)整数就是不含有小数点的数据

      (3)浮点数就是带有小数点的数据

3.4 C语言基本数据类型

      (1)int

            声明定义int变量。

            初始化变量。

            给变量赋值的数据就是变量的常量。

            打印int值。

            八进制和十六进制数据都是2的幂而默认十进制却不是,显然,八进制和十六进制记数系统在表达与计算机相关的值时很方便。

            显示十进制,八进制,十六进制            

            #include <stdio.h>


            int main(void)// 正确主函数入口
            {
                int a = 100;

                printf("十进制 = %d , 八进制 = %o , 十六进制 = %x \n", a, a, a);// 十进制,八进制,十六进制

                打印信息:100,144,64。
                printf("十进制 = %d , 八进制 = %#o , 十六进制 = %#x \n", a, a, a);// 十进制,显示前缀八进制,显示前缀十六进制

                打印信息:100,0144,0x64。
            }

      (2)其他整数类型

            short int(简写为short),是有符号(±)类型。

            long int 或者long 有符号(±)类型。

            long long int 或者 long long ,是有符号(±)类型。

            unsigned int 或者 unsigned ,是无符号类型。符号在位中占一位大小。

            signed 在任何有符号类型前添加,可强调使用有符号类型的意图。如:short,short int,signed short,signed short int 都是表示同一种类型。

            1)声明其他正数类型

            

            2)使用多种整数类型的原因

            一是内存大小的选择使用,、二是现在计算机计算能力的提升。

            在选择多种int优先考虑使用unsigned(无符号)类型的整数。

            3)long常量和 long long 常量

            要把较小的常量作为long 类型对待,可以在值的末尾叫上l(小写的L)或L后缀,l或L后缀也可用于八进制和十六进制整数。

            类似的,long long 也可以使用ll或LL后缀来表示,另外,u或U后缀表示unsigned long long,如:5ull,10LLU。

            4)打印short,long,long long 和unsigned类型

            使用printf()格式化输出打印。

            

            long                     %lx      十六进制

            long                     %lo      八进制

      (3)使用字符:char类型:一个字节,大小8*bit位

            用于存储字符,单引号‘?’。

            存储ASCII码整数表示的字符。

            1)声明char类型变量:char itable;

            2)字符常量和初始化:char itable = 'A';char itable = 65;(在ASCII码中,65代表A字符)

            3)非打印字符(转义字符)

                  

                 从C90开始,不仅可以使用十进制,八进制形式表示字符常量,C语言还提供了用十六进制形式表示字符常量,即反斜杠后跟一个x或X,加1~3位十六进制数字。(char a = \0x41; char b = \0101; char c = 10; 就是以十六进制,八进制,十进制常量)

         4)打印字符

            使用printf()。

            %c 是打印字符信息,%d 是打印字符数值

         5)有符号还是无符号

            根据编译器不同会把char定义为有符号(-128~127)或无符号(0~255)。

            根据C90标准,C语言允许在char前使用signed或unsigned关键字,这样解决了编译器不同的问题。

      (4)_Bool类型(C99标准添加),注意使用stdbool.h头文件

           

      (5)可移植类型:stdint.h和intypes.h

         

      (6)float,double和long double

         float,C标准规定,至少能表示有6位有效数字。f/F

         double,C标准规定,至少能表示有10位有效数字。系统默认类型

         long double,C标准规定,至少与double类型的精度相同。l/L

         1)声明浮点类型

         ...

         2)浮点类型常量

         ...

         3)打印浮点值

         使用pintf()格式化输出打印。

         float/double  %f。

         使用 %e 打印浮点为指数格式,如果系统支持十六进制格式浮点数,可用a和A分别代替e和E。

         long double  %Lf。%Le/%La。

         4)浮点值得上溢和下溢

      (7)复数和虚数类型(complex.h)

         三个复数类型:float_Complex,double_Complex,long double_Complex。

         三个虚数类型:float_Imaginary,double_Imaginary,long double_Imaginary。

      (8)其他类型

         数组,指针,结构,联合。

      (9)类型大小

         1个字节 = 8*bit。程序中可以使用sizeof(type)type代表类型或者类型的变量名称,获取该类型的字节大小信息。

3.5 使用数据类型

      int i_name = 1;unsigned int ui_name = 1;注意类型和名称之间的定义,并非强制,而是规范,从名称中能得知类型信息。

3.6 参数和陷阱

      printf(),格式化输出,scanf(),格式化输入的类型对应和参数变量的数量。

3.7 转义序列示例

      (1)程序运行情况

      (2)刷新输出,使用fflush()函数

3.8 关键概念

3.9 本章小结

3.10 复习题

3.11 编程练习

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值