2-关键字/标识符/数据类型/scanf/printf

2015-07-14  本文已影响183人  SoftKnife
people lack willpower , rather than strength

1.关键字

1.关键字的基本概念

2.数据类型关键字

   + 基本数据类型(5个)
   + 类型修饰关键字(4个)
   + 复杂类型关键字(5个) 
   + 存储级别关键字(6个)

3.流程控制关键字

- 跳转结构(4个)    
- 分支结构(5个)
- 循环结构(3个)

=====

2.标识符

1.标识符概念

2.标识符命名规则

目前Xcode识别汉字,汉字可以作为标识符一部分。但最好不要这样!


3.注释

码代码时一定要加注释!


4.数据类型

1.数据的分类

    + 静态的数据
    + 动态的数据

2.C语言数据类型概述


5.常量和变量

1.常量概念:表示一些固定的数据,也就是不能改变的数据

2.变量概念:表示的数据是可以经常修改的。当一个数据的值需要经常改变或者不确定时,就应该用变量来表示。

  • 思考不初始化,变量内存储数据是什么?
- 1)随机数
- 2)上次程序分配的存储空间,存数一些 内容,“垃圾”
- 3)系统正在用的一些数据
类型 16位编译器 32位编译器 64位编译器
char 1 1 1
int 2 4 4
float 4 4 4
double 8 8 8
short 2 2 2
long 4 4 8
long long 8 8 8
void* 2 4 8

6.printf & scanf

1.printf函数


        逼格在哪里?
        指定保留多少位小数时, 可以通过*号占位, 以后赋值具体保留的小数位
        printf("%.*f", 4,3.1415926535f);
        输出结果: 3.1416
        
        实型精度问题:
        对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位。
        对于双精度数,使用%lf格式符输出时,前15位是有效数字,小数6位。
        
        有效数字的位数与指定输出的小数位数(%.7f)是两码事。
        “有效数位为7”:是指此数据从第一个非零数字开始,误差不超过本数位半个单位的、精确可信 的数位是7位(包括小数点前的非零数位)。
        %.7f:是指输出此数据的时候,小数点之后要显示7位数字(但是如果小数点前还有一些非零数 位,那么小数点后的这7位并不能保证都是精确可信的有效数位,)
        
        

   + 输出项列表
        * 可以是常量、变量和表达式,也可以没有输出项,这些输出项必须与格式控制字符串在类型和数量上完全对应,否则结果将不可预测。当有多个输出项时,各个输出项之间用逗号 ‘,’分隔
        
### 2.scanf函数
- scanf函数是一个阻塞式函数:
    + 程序会停在scanf函数出现的地方, 直到接收到数据才会执行后面的代码
- scanf函数格式:`scanf("格式控制字符串",输入项地址列表);`
    + 格式控制字符串:
    
        ```
    规定数据输入的格式,由格式控制符和普通字符组成,格式控制符和百分号(%)一起使用,用来说明输入数据的数据类型(格式字符)。
        ```
        
        scanf函数格式控制符:
        
        |格式|意义|
        |--|--|
        |d|输入一个十进制整数|
        |o|输入一个八进制整数|
        |x|输入一个十六进制整数|
        |i|输入一个有符号或无符号的十进制、八进制、十六进制整数|
        |u|输入一个无符号十进制整数|
        |f 、e或E、 g或G|输入一个小数形式或指数形式的浮点数|
        |c|输入一个字符|
        |s|输入一个字符串|
        

    + 输入项地址列表:
        
        ```
        需要接收数据的变量地址,这些输入项与格式控制字符串在类型和数量上要对应,当有多个 输入项时,各个地址名之间以逗号“,”分隔。输入格式和变量类型要保持一致。
        ```
        
        > 除"空格","回车","tab"之外, 如果输入的数据和scanf接收的数据不匹配将会自动结束接收。
        
 - scanf注意事项:
    - 如果在输入时,输入了多个空格、回车、Tab都会被系统忽略的
        + ![](http://7xj0kx.com1.z0.glb.clouddn.com/Snip20150513_10.png)
    - 如果要获取的内容是多个整数,中间输入了多个空格、回车、Tab都会被系统忽略
        + ![](http://7xj0kx.com1.z0.glb.clouddn.com/Snip20150513_11.png)
    - 如果要获取的内容是多个实型,中间输入了多个空格、回车、Tab都会被系统忽略
        + ![](http://7xj0kx.com1.z0.glb.clouddn.com/Snip20150513_12.png)
    - 非法的格式输入,得不到想要的结果
        + ![](http://7xj0kx.com1.z0.glb.clouddn.com/Snip20150513_14.png)
    - 混合整形和字符型数据接收
        + 当整形的数和字符混合输入时,要避免“空格” 添麻烦
        + 为防止混合输入空格造成的错误,可以通过添加普通的分隔符解决
            * ![](http://7xj0kx.com1.z0.glb.clouddn.com/Snip20150513_15.png)

    - 关于使用"\n"的问题
        + scanf函数当遇到回车的时候,会结束执行
        + ![](http://7xj0kx.com1.z0.glb.clouddn.com/Snip20150513_19.png)
        + 所以在scanf中,尽量不要使用 \n
        + 如果在scanf中使用了\n, 需要原样输入"\n"
        + ![](http://7xj0kx.com1.z0.glb.clouddn.com/Snip20150513_20.png)
上一篇 下一篇

猜你喜欢

热点阅读