当前位置 博文首页 > m0_53421868的博客:初试c语言

    m0_53421868的博客:初试c语言

    作者:[db:作者] 时间:2021-09-04 21:27

    1、C语言常量与变量 2.字符串 + 转义字符
    2、C语言常量与变量、作用域讲解
    3、static与static的使用与注意事项

    1.当一个文件中同时存在着同名的全局变量和局部变量,局部会优先,并且局部变量的改变不会影响到全局变量

    int a = 100;//全局
    void test()
    {
    printf("%d\n",a);
    }
    int main()
    {
     int a = 10;//局部变量
    printf("%d\n",a);//局部优先 - 10
    a = 20;
    test();
    return 0;
    }
    

    一:局部变量的作用域

    1. 局部变量的作用域是变量所在的局部范围。

    2. 全局变量的作用域是整个工程。
      3.声明外部变量: 如果想在当前.c文件访问其他文件的外部变量时使用extern就是外部变量声明
      二:局部变量的生命周期

    变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

    1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。

    2. 全局变量的生命周期是:整个程序的生命周期。
      三:
      四:常量定义
      C语言中的常量和变量的定义的形式有所差异。

    C语言中的常量分为以下以下几种:

    1.字面常量

    2.const 修饰的常变量:const修饰的常变量是一个变量,具有常属性,相当于这个变量被加的const保护了,没有修改权限 --举例数组

    3.#defifine 定义的标识符常量,在预处理阶段会把符号替换为一个字面常量
    4.枚举常量:可能取值 - 枚举常量,如果不初始化系统会默认给值 0 , 顺序给值 0、1、2,初始化能更改,未来不能更改,能做算术运算吗?待补充

    enum Sex
    
    {
    
     MALE,
    
     FEMALE,
    
     SECRET
    
    };
    

    //括号中的MALE,FEMALE,SECRET是枚举常量

    int main()
    
    {
    
        3.14;//字面常量
    
        1000;//字面常量
    
        const float pai = 3.14f;   //const 修饰的常量
    
        pai = 5.14;//ok?
    
     #define MAX 100            //#define的标识符常量    
    
        return 0; 
    }
    

    C99中引入:变长数组,可以用变量指定数组长度,老版本的编译器支持

    一、补码 反码 源码

    int main()
    {
        int a = 1;
        a = -a;//负数,正,反,补都不同
        a = a;//正数,正,反,补都相同
        return 0;
    }
    

    整形变量a在内存中占四个字节,8位32比特
    注:整数在源码反码补码的是相同的
    源码:00000000000000000000000000000001
    反码:00000000000000000000000000000001
    补码:00000000000000000000000000000001
    那如果是负数呢?
    实际上一个数字在成为负数的时候源码反码补码的表现形式是不同的
    也是整形变量a在内存中占四个字节,8位32比特
    源码:10000000000000000000000000000001//最高位表示符号位,0正1负
    反码:1111111111111111111111111111111111110 //符号位不变按位取反
    补码:1111111111111111111111111111111111111//对反码 + 1
    注意:内存中存储整数的时候,存储的是二进制的补码
    计算的时候也是采用的补码
    二、逗号表达式:
    1.逗号表达式会从左向右依次计算
    2.整个逗号表达式的结果是最后一个逗号表达式
    三、[]数组下标:两个操作数
    1.arr[10]
    2.下标引用操作符[ ],两个操作数arr和10
    四、static关键字、extern:声明外部符号
    1.static修饰的局部变量只改变变量的生命周期
    2.不影响变量的作用域
    3、依然是只在当前作用域使用
    4.默认一个全局变量具有外部链接属性,一旦使用static修饰的全局变量只能在当前文件使用,外部链接属性变成了内部链接属性,使用extern不能进行外部链接、其他文件不能使用
    5.extern修饰函数:函数具有外部链接属性,static静态函数只具有内部属性
    总结:修改一个变量也好函数也好只要被static修饰过了都将变成内部链接属性,只能在本文件使用!!!!!!
    extern:外部声明
    extern int Add(int a,int y) //Add.c文件

    int main()		//test.c文件主入口
    {
        Add();   
        return 0;
    }
    
    cs
    下一篇:没有了