基本类型的变量:
变量的定义:
数据类型 变量名;
int a = 2; //定义整型变量a并赋值为2
其中变量名的规范:
●变量名可以由字母、数字和_ (下划线)组合而成
●变量名不能包含除以外的任何特殊字符, 如: %、#、逗号、空格等
●变量名必须以字母或(下划线)开头
●变量名不能包含空白字符(换行符、空格和制表符称为空白字符)
●C语言中的某些词(例如int和float等)称为保留字,具有特殊意义,不
能用作变量名
●C语言区分大小写,因此变量price与变量PRICE是两个不同的变量
变量的初始化:
- 在定义变量时进行初始化
- 在使用时进行初始化
变量的使用:输入、运算、输出等操作。
输入函数:
scanf(“格式符”,&变量的地址1,&变量的地址2);
注意引号里面最好不要加换行符或者其他中文字符,因为你在输入的时候也要跟着输入这些东西,容易在输入时忽略
输出函数:
printf(“格式符”,变量名1,变量名2);
字符型输入输出函数:
getchar(); //得到字符
putchar(); //输出字符
输入输出函数的注意点:
- 输入时的注意事项
- 回车键对输入的影响
- 输出整型占位符的个数以及左右对齐
- 输出浮点数的小数点位数和总的占位符个数
#include<stdio.h>
int main()
{
char s;
int c,d,a=200,b=3;
float f3,f4,f1=12.35,f2=1.23;
printf("a=%10d,b=%-10d\n",a,b);
//a变量输出时右对齐,占10个占位符;b变量输出时左对齐,占10个占位符
printf("f1=%7.2f,f2=%4.2f\n",f1,f2);
//f1总共占7个占位符,保留小数点后两位
/*注意当给的占位符小于数值本身的话,输出会自动扩展,还是输出数值本身。*/
printf("请输入两个整型变量\n");
scanf("%d%d",&c,&d);
//这里在输入的时候中间用空格隔开就可以了
printf("c=%d,d=%d\n",c,d);
getchar(); //前面输入完之后会敲一个回车,系统会把回车当成下一个输入,所以这里要接收一个字符——回车键,来让之后的输入不受回车影响。
printf("请按照“xx,xx”格式输入两个浮点型变量\n");
scanf("%f,%f",&f3,&f4);
//这里在输入的时候中间要按照"f1 = XX,f2 = XX"的形式输入
printf("f3=%f,f4=%f\n",f3,f4);
getchar();//与上同理,放掉回车键
printf("请输入一个字符型变量\n");
s = getchar();
putchar(s);
printf("\n");
return 0;
}
输出效果:
a= 200,b=3
f1= 12.35,f2=1.23
请输入两个整型变量
1 2 //我的输入
c=1,d=2
请按照“xx,xx”格式输入两个浮点型变量
1.2,2.3 //我的输入
f3=1.200000,f4=2.300000
请输入一个字符型变量
d //我的输入
d
这个代码在Linux下才能正常运行,在codeblocks和visual studio里面并不能正常运行,我目前也不知道是为啥。
变量的三大属性
变量的作用域:
作用域:变量的范围(全局变量、局部变量)
- 函数作用域
- 代码块作用域
- 文件内作用域
- 原型作用域
链接属性
- 外部链接属性:不同文件的同名变量是同一个变量
extern修饰的变量 - 内部链接属性:不同文件的同名变量是两个变量
static修饰的变量
存储属性
- 静态存储:变量在定义的时候就申请了空间
例如:全局变量、extern、static - 栈(动态存储):用的时候才申请空间,不用的时候就释放
例如: 局部变量