c语言变量(适用小白,万字笔记更新中....)

变量

变量:

定义变量: int age=150;生活中要变化的(比如:年龄、体重、薪资)

             Float weight=45.5f;       age、weight、ch都是变量(相当 于数学中的x)、其后是值

             Char ch=’W’;

注意:若全局变量和局部变量名字一样时,局部变量大于全局变量

变量的分类:

全局变量:定义在代码块{}外的变量

局部变量:定义在代码块{}内的变量

变量的使用

练习:2个数的和

#include <stdio.h>
int  main()
{
    int num1 = 0;
    int num2 = 0;
    scanf("%d%d", &num1, &num2);
    int sum = 0;
   sum = num1 + num2;
    printf("sum=%d\n", sum);
       return 0;
}
  1. int num1 = 0int num2 = 0:定义两个整型变量为num1和num2
  2. scanf("%d%d", &num1, &num2)scanf输入函数,%d%d表示输入两个整数,&取地址符号(意思是将第一个%d放在&num1地址处,将第二个%d放在&num2地址处)
  3. int sum = 0:定义一个整型变量为sum
  4. sum = num1 + num2:将num1和num2的相加值存放在sum里面
  5. printf("sum=%d\n", sum);以十进制的形式输出结果sum,并让结果等于sum(可让结果等于其他只需将sum换成其他字符即可)

运行后,在调试器中输入两个数据(两数据中间空格分开)后按回车即可计算出结果

//注意,以上代码输入vs后可能报C4996错误,那是因为scanf是过时的或不安全的代码,所以编译器认为改代码不可行,可将scanf改成scanf_s(但是这个scanf_s是vs提供的不是标准的C语言,也就说其他编译器不能识别scanf_s)或在第一行加入代码:#define _CRT_SECURE_NO_WARNINGS 1 让编译器忽律改警告(还可以忽略:strcpy、strlen、strcat…)

变量的作用域和生命周期

作用域:哪里可以用哪里就是它的作用域

局部变量的作用域:在所在的{ }代码块内

案例:

int main()
{
  {
     int num = 0;
  }
  printf("num=%d\n", num);
  return 0;
}

在这一段代码中,num定义在{ }内部,所以只对{ }内部有作用,故运行代码时会显示printf中的num未定义。将printf("num=%d\n", num);移到定义num的{ }内部即可成功运行了

全局变量的作用域:在哪里都可以使用,整个工程,即多个源文件可互相使用全局变量但要提前声明。

案例:

源文件1:
#include <stdio.h>
int main()
{
    extern int ab;
    printf("%d\n", ab);
    return 0;
}
源文件2:
int ab = 10;

extern int ab:extern声明外部符号的代码,来声明ab是来着其他源文件的全局函数,不声明会显示没有定义字符ab

生命周期:变量的创建到变量的销毁

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

例如:

int main()
{
  {
     int num = 0;
  }
  printf("num=%d\n", num);
  return 0;
  }
}

那么int num = 0;的生命周期是它所在的{ }中,从 { 开始,到 } 结束

全局变量:整个程序的生命周期

补充:学习c/c++语言的时候,我们会关注内存中三个区域:栈区,堆区,静态区

局部变量函数参数----栈区 

动态内存管理Malloc、Calloc、Realloc、Free----堆区  

全局变量静态变量----静态区

  如有错误请指出          

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值