C语言-数据类型、常量、变量、变量作用域、printf、scanf函数

4、数据类型介绍

 

    数据:文本数据、音频、视频、图像、数字

 

    C语言中有5大数据类型:基本类型、构造类型、空类型、指针类型、自定义类型

 

    基本数据类型:

       

       整型    长整型long int    整型int(4)    端整型short int

 

       实型    单精度float(4)    双精度 double(8)

 

       字符型   char(1)

 

    

    内存:

     1> 内存分配:4G存储大小:4*1024*1024*1024Byte; 内存的基本单元为一个字节(就是8bit)

     2> 内存区域:栈 (存放局部变量)

                堆 (存放动态分配的数据, 比如:类对象,函数malloc要求系统分

                    配的内存,动态分配的内存都需要程序要自己释放)

                常量区 (存放常量)

                代码区 (代码区:代码内的局部变量在这里分配内存)

                全局变量区(静态区)

 

 

 5、常量

 

    固定不变的量

 

    1)整型常量

 

       2       0b开头   0b00001010;

       8       0开头    012;

       10      默认     10

       16      0x      0xff01

 

    2)实型常量

 

       单精度:2.3f

 

       双精度:4.5 (默认)

 

    3)字符型常量

 

       'a'  ' '  '$'  '\n'(转义字符)

 

    4)字符串常量

 

       "abc"  "a"

 

 6、变量

 

    在计算机中存储经常变量的数据

    变量在内存中代表了一块内存区域

 

    使用流程:

 

    定义 ---- 初始化  ----使用

 

    1)变量的定义:

 

        int a;

 

        int a,b,c;

 

        变量定义完成以后,有值:

        1)随机的 2)上一个程序在内存中驻留的 3)系统的

 

    2)变量的初始化

 

        1)先定义,后初始化

           int a;

           a = 10;

 

        2)定义的同事进行初始化

           int a = -1;

 

           全部初始化:int a = -1,b=0;

           部分初始化:int a,b = -1;

 

        3)使用其他的变量初始化

           int a = 0;

           int b = a;

 

        4)连续初始化

 

           int a,b,c;

           a = b = c =10;

 

    3)变量的使用

 

          int a =0;

 

          int b;

 

          b = a+10;

 

          a = b;

 

    4)变量名称遵守标识符的命名规则

 

 7、变量的作用域

 

     变量的使用范围

 

     变量分:局部变量和全局变量

 

     局部变量:函数或者代码块中定义的变量

             作用域:从定义的位置开始向下 遇到 “}” 作用域结束

 

     全局变量:在函数的外部定义的

 

             作用域:从定义的地方开始,到当前文件结束

 

     注意:

     1)块的内部可以访问全局变量  

     2)在块的外部不能访问块内部的变量

     3)块的内部可以定义和全局变量同名的变量(屏蔽)

 

    为什么变量要初始化:

    因为程序结束后,操作系统会释放内存,但是内存中得值还在,所以我们定义的变量有可能使用了上次系统释放的内存

 

 8、printf函数

 

    printf函数 标准的输出函数

    输出的原理 : printf把要输出的内容--->输出缓冲区-->输出到控制台

   

    格式:printf("格式说明",变量列表)

    

    格式说明符:

 

    %d  整型   %i 可以

 

    %md  %0md

 

    %c  字符型

    %f  实型   %e  %g

    %o  八进制

    %p  地址

    %x  16进制

 

 9、scanf函数(阻塞式函数-等待用户的输入,如果不输入会一直等待)

 

    C语言中标准的输入函数

    接收用户从键盘上输入的内容

 

    格式:scanf("格式控制",地址列表)     地址怎么来的?  &-取地址符号

 

    1)接受一个数字

     int a=-1;

     scanf("%d",&a);

     

     注意:在输入字符之前 输入了 回车、tab制表、空格 ,都被忽略

     

     scanf("%5d",&a);  //%md  m就是要获取的数据的位数

 

    2)接受多个数字

 

    3)接受的是数字和字符混合

 

    4)scanf的运行原理  先输入到缓冲区,然后输出到控制台;

     //接收多个数字的问题

     //    int a=-1,b=-1;

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

     //    printf("a = %d,b = %d\n",a,b);

     

     //接受指定的位数的问题

     //    int a=-1;

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

     //    printf("a = %d\n",a);

     

     //字符混和输入

     //    int a=-1;

     //    char ch;

     //    scanf("%d#%c",&a,&ch);  //","是一个普通的分隔符 ,输入数据的时候也要用“,”分隔

     ////    scanf("%d%c",&a,&ch); //有问题的,涉及到scanf的运行原理,稍后讲

     //    printf("a = %d,ch = %c\n",a,ch);

     

     

     //关于\n问题 ,

     

     //    int a= -1;

     //    scanf("%d\n",&a);  // \n 换行符,尽量避免这种写法

     //    printf("a = %d",a,b);

 

     

     int a=-1,b=-1;

     char ch;

     char c;

     

     scanf("%d",&a); //接收三个内容,格式: 12 b 34

     scanf("%c",&ch); //空格

     scanf("%c",&ch);  //b

     scanf("%c",&c);  //空格

     scanf("%d",&b);  //34

     printf("a = %d,ch = %c,b = %d\n",a,ch,b);

     

 

posted @ 2014-10-11 21:46  _boy  阅读(474)  评论(0编辑  收藏  举报