美文网首页十天学会C语言iOS 开发 C语言
03.c语言中数据类型、常量、变量、scanf函数

03.c语言中数据类型、常量、变量、scanf函数

作者: 瓦雷 | 来源:发表于2016-06-25 09:30 被阅读116次

    1、c语言数据分类

    013CCB08E1807B61BA534FD19618E2A0.png

    2、常量

    常量,表示一些固定的数据

    3、变量

    当一个数据的值需要经常改变或者不确定时,就应该用变量来表示

    变量的使用
      # 赋值
        •   往变量里面存点东西,就是赋值。赋值语句后带个分号;
                   i = 10;
    注意:这里的等号=,并不是数学中的“相等”,而是C语言中的赋值运算符,
         作用是将右边的常量10赋值给左边的变量i
        •   第一次赋值,可以称为“初始化”
        •   初始化的两种形式
        •   先定义,后初始化:int a;  a = 10;
        •   定义的同时进行初始化:int a = 10;
      # 修改
        •   可以修改变量的值,多次赋值。每次赋值都会覆盖原来的值
             i = 10;
             i = 20;
             变量i最后的值是20
        •   使用printf输出一个\多个变量的值
             int a = 10, c = 11;
             printf("a=%d, c=%d", a, c);
        •   double\float\char的输出,格式符的一些小技巧
             double height = 1.55;
             char blood = 'A';
             printf("height=%.2f, 血型是%c",  height,  blood);
        •   简单的加减操作
             int a = 10 + 20;
        •   没有初始化时不要拿来使用(下面的写法是不建议的)
             int score;
             printf("score=%d", score);
        •   变量之间值的传递
        •   可以将一个变量的值赋值给另一个变量
            int a = 10;
            int b = a;
        •   连续赋值
            a = b = 10;  
    
      #常见错误
        •   变量名相同  int a = 10;  int a = 12;
        •   变量的作用域不对
        •   变量的创建和释放过程
        •   代码块作用域 {  int a = 10; }
    
    变量的内存分析
    1> 内存以“字节为单位”
    508C439E559F7E4934F0F6B78C13E26F.png

    0x表示的是十六进制,不用过于纠结,能看懂这些数字之间谁大谁小就行了

    2>变量的存储
    • 所占用字节数跟类型有关,也跟编译器环境有关
    0992120FBD66A06DD7C9C20A3AE395D3.png
    • 变量实例
    int b = 10;
    int a = 20;
    

    1⃣️.内存由大到小寻址,优先分配内存地址较大的字节给变量。b的内存地址比a大
    2⃣️.每个变量都有地址:第一个字节的地址就是变量的地址

    • 查看内存地址:
    int a;
    printf("a的地址是:%p\n", &a);
    

    ➡️ 注意:

    在变量未经初始化之前,不要尝试使用变量的值
    int a;
    printf("a的值是:%d\n", a);
    上面的写法是不建议的
    

    4、scarf函数

    简介

    这也是在stdio.h中声明的一个函数,因此使用前必须加入#include <stdio.h>。调用scanf函数时,需要传入变量的地址作为参数,scanf函数会等待标准输入设备(比如键盘)输入数据,并且将输入的数据赋值给地址对应的变量

    简单用法

    int age;
    scanf("%d", &age);

    scanf函数时,会等待用户的键盘输入,并不会往后执行代码。
    scanf的第1个参数是"%d",说明要求用户以10进制的形式输入一个整数。
    这里要注意,scanf的第2个参数传递的不是age变量,而是age变量的地址&age,
    &是C语言中的一个地址运算符,可以用来获取变量的地址
    
    输入完毕后,敲一下回车键,目的是告诉scanf函数我们已经输入完毕了,
    scanf函数会将输入的值赋值给age变量
    
    其他用法
    用scanf函数接收3个数值,每个数值之间用中划线-隔开
    scanf("%d-%d-%d", &a, &b, &c);
    3个%d之间是用中划线-隔开的,因此我们在每输入一个整数后都必须加个中划线-,
    比如这样输入,不然在给变量赋值的时候会出问题
    
    注意:数值之间的分隔符是任意的,不一定要用中划线-,
    可以是逗号、空格、星号*、井号#等等,甚至是英文字母
    
    // 逗号, 
    scanf("%d,%d,%d", &a, &b, &c); // 输入格式:10,14,20  
    
    // 井号# 
    scanf("%d#%d#%d", &a, &b, &c); // 输入格式:10#14#20  
    
    // 字母x 
    scanf("%dx%dx%d", &a, &b, &c); // 输入格式:10x14x20
    
    用scanf函数接收3个数值,每个数值之间用空格隔开
    scanf("%d %d %d", &a, &b, &c);
    3个%d之间是用空格隔开的,我们在每输入一个整数后必须输入一个分隔符,
    分隔符可以是空格、tab、回车
    

    代码来一发

    #include <stdio.h>
    
    int main()
    {
       // 定义一个变量,用来保存用户输入的整数
       int number;
       
       // scanf函数只接受变量的地址
       // scanf函数是一个阻塞式的函数,等待用户输入
       // 用户输入完毕后,就会将用户输入的值赋值给number变量
       // 函数调用完毕
       scanf("%d", &number);
       
       printf("用户输入的值是%d\n", number);
       
       return 0;
    }
    

    相关文章

      网友评论

        本文标题:03.c语言中数据类型、常量、变量、scanf函数

        本文链接:https://www.haomeiwen.com/subject/rscadttx.html