美文网首页我的iOS学习过程
第二天 常量变量数据类型自增自减sizeof

第二天 常量变量数据类型自增自减sizeof

作者: 青菜君 | 来源:发表于2015-10-19 11:11 被阅读41次

    关键字

    • C语言提供的有特殊含义的符号 也叫做"保留字" 一共32个
    • 作用:表示或实现一些功能
    • 注意:全部是小写

    标识符

    • 在程序中自定义的一些符号和名称
    • 作用:给函数、数据取名 方便区分
    • 范围:26个字母、0-9、下划线“_”组成
    • 注意:1.不能以数字开头 2.不能与关键字重名 3.严格区分大小写
    • 命名方式:驼峰命名法

    数据

    • 数据就是数值

    • 用途:对数据进行操作使用时

    • 1.静态数据 :断电还在

    • 2.动态数据 :加载到内存中的,断电就没了

      1byte=8bit 1KB=1024byte 1MB=1024KB 1GB=1024MB
      

    常量

    数据类型:
    • 基本类型: 整型、浮点型、字符类型
    • 构造类型: 数组、结构体、共用体
    • 指针类型
    • 空类型

    float:单精度浮点型,精确度到小数点后7位

    double:双精度浮点型,小数点后15位

    printf用法

    %d 整型

    %c 字符型

    %f 浮点型

    %p 地址

    &lu 配合sizeof使用 查看变量在内存中所占用的字节

    printf("输出整型数据%d",int);
    printf("输出浮点型数据%f",double);
    printf("输出字符型数据%c",'c');
    printf("输出变量在内存中的地址%p",&int);
    printf("查看变量在内存中占用的字节数%lu",sizeof(int));
    
    

    变量的作用域

    • 变量的作用域只在对应的代码块中(相邻的两个大括号)
    • 不同函数属于平行作用域
    • 同一个作用域中不能出现同名的变量
    • 不同作用域下变量名可以相同
    • 变量只在自己的作用域内有效,出了作用域变量占用的内存被释放掉了
    • 作用域可以无限嵌套
    • 子作用域可以使用父作用域中的变量.父作用域无法使用子作用域中的变量.
    int main(){
        
        {
            int a = 33;
            printf("%d\n",a); // 这里a = 33
        }
        int a;
        int b;
        a = b = 33;
        {
            int a = 88;
            a++;
            printf("a = %d\n",a); //这里a = 89
            {
                a++;
                printf("%d\n",a); //a = 90 这个作用域没有定义变量a 自动去上级作用域寻找变量a 并执行a++
            }
        }
        b++;
        printf("a=%d,b=%d\n",a,b);//a = 33 , b = 34  上一个作用域中的a 使用完就被释放掉了 所以这里的a还是main函数中的 33 .
    
    }
    
    

    变量的内存分析

    • 内存占用的基本单位:byte(字节) 1byte = 8 bit
    • 输出内存占用:
    printf("int类型在内存中占用的字节数为:%lu",sizeof(int));
    
    • 输出内存地址:
    int num;
    printf("num在内存中的地址:%p",&num);
    
    • 从编号较大的内存区域向编号较小的内存区域分配
    • 变量的地址是被分配的内存块中所有区域的最小值

    scanf函数用法

    • 在<stdio.h>库中
    • 把用户按指定格式从键盘上输入的数据赋值给指定的变量
    scanf("%d",&i);
    
    
    • 需要赋值的变量前面加取址符&
    • 两个%之间的内容要按原样输入
    • 不能用\n换行
    • printf函数的参数是变量名,scanf函数的参数是变量的地址

    算数运算符

    • +,-,*,/,%
    • 用于数据的运算
    • 精度 double > float > int
    • 取余运算符%只能用于整数
    • 运算时两个数据精度不一样,低精度数据会自动转换为高精度
    • 同精度运算只能得到同精度的结果,需要提高精度需要强制类型转换
    double d = 2/3;//赋值后d为0
    解决办法:
    double d = (double)2/3;//d = 0.666
    double d = 2.0/3;//d = 0.666
    

    赋值及自增自减运算

    • =赋值运算符
    • ++ --自增自减运算
    a++;//a = a + 1
    a--;//a = a - 1
    
    • += -=加减等于运算符
    a += 1;// a = a + 1
    a -= 1;// a = a - 1
    
    • ++a a++的区别
    a++;//a先参与运算 再自增
    ++a;//a先自增 然后把结果参与运算
    

    sizeof用法

    • 单目操作符
    • 以字节形式给出其操作数或数据类型的存储大小
    • 打印数据类型的字节时需要加( ),打印常量或变量的时候可以不用
    printf("%lu\n",sizeof (int));//4
    b = sizeof 'a';
    

    相关文章

      网友评论

        本文标题:第二天 常量变量数据类型自增自减sizeof

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