初试c语言

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;
}
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱生活,爱代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值