C语言入门-day04

一、存储类型

1、auto--自动类型(系统自动分配区域)

        普通的局部栈变量,这种对象会自动创建和销毁
        一般隐藏auto的存储类型为自动存储类型,程序大多都是这种自动变量

        inti= 10;
        (auto) int i= 10;

2、register--寄存器类型

        特点:提高运行效率,cpu上的寄存器特别的少
        register float pi = 3.14;
        可能会申请失败,失败转为auto类型

3、extern

        (1) extern 可以在一个文件中去扩展全局变量的作用域

      (2)将全局变量的作用域扩展到其他文件

                a.在一个文件中定义一个变量,在另一个文件中用 extern + 变量名 去使用它
                        int b = 2;
                        extern b;
                b.在一个文件中用extern 修饰定义一个变量,在另一个文件中直接定义使用
                        extern int c = 3;
                        int c;

        (3)extern 修饰函数,此函数就成为了外部函数,可供其他文件调用
                 在定义或申明中的一个地方用extern修饰就可以

4、static  --  静态类型

        数据存放在全局数据区,但是作用域只能在本文件/本函数中使用

        所以可以在两个不同的文件/函数同时声明同名的static变量,但是是两个不同的变量

        (1) 修饰全局变量,将这个全局变量的作用域限制在本文件中

        (2)修饰函数,将这个函数的作用域限制在本文件中

          (3)  修饰局部变量,延长生命周期(有的系统是延长到程序结尾)

二、输入输出

1、格式输入输出函数

printf()
        功能:技照指定的格式向显示器输出数据

        格式:
                printf("格式控制串”,输出表);
                printf("m = %d\n",m);
        %d -- int 十进制
        %ld -- long
        %ld -- long long
        %x --十六进制
        %o --八进制
        %c -- 打印一个字符

        %s -- 打印字符串
        %p -- 打印地址
        %f -- float
        %lf -- double
        %u -- unsigned int
        %e -- 指数
        %g -- 打印浮点型的数,只打印有效数字

scanf() -- 格式输入函数

        功能:按照指定的格式从键盘读入数据,存入地址表中待定

        格式: scanf("格式控制串",地址表);

                scanf("%d",&m);

        "*"符: 用以表示,该输入项,读入后不赋予相应的变量,即跳过该输入值

scanf("%d %*d %d",&a,&b);

如果输入1 2 3,把1赋值给a,2会跳过,3赋值给b

宽度: 用十进制整数指定输入的宽度(字符数)

scanf("%5d”,&a);

输入12345678,只会将12345赋值给a,后面的部分被截取

scanf("%4d%4d",&a ,&b);

输入12345678,会将1234赋值给a,后面的5678赋值给b
int a = 123;

printf("%5d\n”,a);
    123

注意:
    1、遇到空格、tab、回车 代表结束
    2、在格式控制串里有什么符号,就必须要输入什么符号

    3、遇到非法输入也会结束

    4、scanf函数没有精度控制

scanf("%5.2f",&a);非法的

不能企图用此语句来输入小数为2位的实数

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