• 第二章


    C语言第二章 数据类型、变量和输入函数

     

    一、数据类型简介

    在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

    类型转换:

    类型存储大小值范围
    char 1 字节 -128 到 127 或 0 到 255
    unsigned char 1 字节 0 到 255
    signed char 1 字节 -128 到 127
    int 2 或 4 字节 -32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
    unsigned int 2 或 4 字节 0 到 65,535 或 0 到 4,294,967,295
    short 2 字节 -32,768 到 32,767
    unsigned short 2 字节 0 到 65,535
    long 4 字节 -2,147,483,648 到 2,147,483,647
    unsigned long 4 字节 0 到 4,294,967,295

    1.2、获得数据类型的长度

    复制代码
    #include "stdio.h"
    void main()
    {
        //sizeof用于获得数字类型的长度
        //sizeof是一个关键字(32个)
        printf("char占用字节数:%d 
    ",sizeof(char));
        printf("short占用字节数:%d 
    ",sizeof(short));
        printf("int占用字节数:%d 
    ",sizeof(int));
        printf("long占用字节数:%d 
    ",sizeof(long));
        printf("float占用字节数:%d 
    ",sizeof(float));
        printf("double占用字节数:%d 
    ",sizeof(double));     
    }
    复制代码

    二、变量定义

    是用数据类型在内存中开辟的空间。
    一个变量应该有一个名字,也就是我们程序员给该空间取的名──叫变量名。
    它在内存中占据一定的存储单元。
    变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分。

    变量:在程序运行过程中可以变化的量。

    常量:在程序运行过程中不可以变化的量。

    复制代码
    #include "stdio.h"
    void main()
    {
        int i=100;
        i++;   //i=i+1
        printf("i=%d 
    ",i); //101
        i--;  //i=i-1
        printf("i=%d 
    ",i); //100
        i+=100;  //i=i+100    
        printf("i=%d 
    ",i);  //200
        i/=3;  //i=200/3=66.666667=66      
        printf("i=%d 
    ",i);  //66
        i+7;  //在内存中66+7完成运算,但值没有写回            
        printf("i=%d 
    ",i);  //66
    }
    复制代码

    2.1、变量名的取名规则

    第一个字符只能是字母或下划线( _ );

    第一个字符的后而只能跟字母、数字和下划线( _ );

    关键字(写上去会变色的那些单词)不能用作变量名;

    区分大小写;

    第一位(a-zA-Z_)后续(a-zA-Z_0-9)

    请问下面那些是非法的,为什么?

    1name
    _product
    _9527
    Double
    int
    _producT
    _product
    total

    2.2、变量定义的多种形式

    复制代码
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    void main()
    {
        //定义变量并赋值
        int i=100;
        
        //先定义再赋值
        float j;
        //j=99.5f; 错误,变量定义必须放在变量使用之前,即先定义后使用,一般都放在函数体的开头部分
        
        //同时定义多个变量
        char a,b,c;
        
        //同时定义多个变量并赋值
        double x=1.5,y=1.6,z;
        
        j=99.5f;
        z=x+y;
        
    }
    复制代码

    三、整型(int)

    复制代码
    #include "stdio.h"
    void main()
    {
        int i;
        i++;   //i=i+1
        printf("i=%d 
    ",i); //101
        i--;  //i=i-1
        printf("i=%d 
    ",i); //100
        i+=100;  //i=i+100    
        printf("i=%d 
    ",i);  //200
        i/=3;  //i=200/3=66.666667=66      
        printf("i=%d 
    ",i);  //66
        i+7;  //在内存中66+7完成运算,但值没有写回            
        printf("i=%d 
    ",i);  //66
    }
    复制代码

    四、字符型(char)

    五、单精度浮点型(float)

    六、双精度浮点型(double)

    七、输入scanf

    复制代码
    #include "stdio.h"
    void main()
    {
        //判断年龄如果小于18岁则提示年轻真好,否则输出年龄
        
        //定义变量
        int age;
        
        //用户输入年龄
        printf("请输入年龄:");
        //从键盘输入,&表示取变量地址
        scanf("%d",&age);
        
        //条件判断
        if(age<18){  //如果条件成立
           printf("年轻真好");
        }
        else{  //如果条件不成立
           //输出
           printf("您的年龄是:%d",age);
        }
    }
    复制代码

    scanf("格式控制",地址列表);
    “格式控制”的含义同printf函数;
    “地址列表”是由若干个地址组成的表列,可以是变量的地址,或字符串首地址

    %f 单精度

    %lf 双精度 

    %c 从键盘接收一个字符
    %d 从键盘接收十进制整数
    %s 从键盘接收一个字符串,遇空格、制表 符或换行符表示接收完毕。
    %[] 从键盘接收一包含在括号内的字符,只 要遇到有一个不在其内的字符,便表 示接收完毕。

    输入时如果遇到 空格 回车 Tab则表示结束

    7.1、输入时指定分隔符

    复制代码
    #include "stdio.h"
    void main()
    {
        int a,b,c;
        printf("请输入年-月-日:");
        scanf("%d-%d-%d",&a,&b,&c);
        printf("%d年%d月%d日",a,b,c);
    }
    复制代码

    7.2、清除缓冲

    复制代码
    #include "stdio.h"
    void main()
    {
        char x,y,z;
        printf("输入:");
        scanf("%c",&x);
        printf("输入:");
        scanf("%c",&y);
        printf("输入:");
        scanf("%c",&z);
        printf("%c,%c,%c",x,y,z);
    }
    复制代码

     

    复制代码
    #include "stdio.h"
    void main()
    {
        char x,y,z;
        printf("输入:");
        scanf("%c",&x);
        fflush(stdin);  //清除缓冲
        printf("输入:");
        scanf("%c",&y);
        fflush(stdin);  //清除缓冲
        printf("输入:");
        scanf("%c",&z);
        fflush(stdin);  //清除缓冲
        printf("%c,%c,%c",x,y,z);
    }
    复制代码

    7.3、输入字符串

    复制代码
    #include "stdio.h"
    void main()
    {
        char a[100];  //数组,char只能是单个字符
        scanf("%s",a);  //不要取地址
        printf("%s",a);
    }
    复制代码

    7.4、限定输入范围

    复制代码
    #include "stdio.h"
    void main()
    {
        //限定输入范围
        char a[100];
        scanf("%[0123456789]s",a);//只能输入0-9,其它表示结束
        printf("%s",a);
    }
    复制代码

     

    7.5、限定输入范围取反

    复制代码
    #include "stdio.h"
    void main()
    {
        char a[100];
        scanf("%[^a]s",a);  //^取反,如果是a则表示结束
        //scanf("%[^
    ]s",a);  //如果是换行则结束,其它字符都可以
        printf("%s",a);
    }
    复制代码

     练习:

    复制代码
    #include "stdio.h"
    void main()
    {
        int nianling;  //年龄
        float fenshu;  //分数
        char aihao[30];  //爱好
        printf("请输入年龄:");
        scanf("%d",&nianling);
        
        printf("请输入分数:");
        scanf("%f",&fenshu);
        
        printf("请输入爱好:");
        scanf("%s",aihao);
        
        printf("您的年龄是%d,分数:%f,爱好:%s",nianling,fenshu,aihao);
    }
    复制代码

  • 相关阅读:
    代码重构编译---make
    clickhouse日期函数
    连续登陆天数+最大登陆天数
    clickhouse基本使用
    数组
    CK优化
    Hive查询优化~布隆过滤器使用
    Presto常见问题优化
    Presto原理解析
    几种排序说明
  • 原文地址:https://www.cnblogs.com/kinson/p/6001597.html
Copyright © 2020-2023  润新知