知识点一:变量与常量
1)在整个程序的运行过程中,没有变化且不能变化的,我们称之为常量;
2)在程序运行期间,可以改变并且有可能会改变的,我们称之为变量;
知识点二:声明变量
short s;
int n;
long l;
float f;
double d;
1)声明变量的公式:类型 + 标识符 + 分号
2)标识符:由我们自己命名的一个标识,用于表示一个变量、函数或其他实体的名称。例如:上面的代码 中s,n,l,f,d是由我们自己命名的一个标识,用于表示一个变量;
3)关键词:在语言标准中规定词汇,并且在代码中有特殊意义和用途。 例如:short,int,long,float, double都是表明变量的类型,它们是由语言标准中提供的词汇;
4)标识符必须经过声明或定义才能正常被编译器识别,而关键词可以直接使用;
5)因此,要让标识符被编译器看做是一个变量,必须将标识符在使用前声明为一个变量;
例:a)正确,变量使用前被声明
#include <stdio.h>
int main()
{
int a;
printf("%d\n", a); // 正确, 变量使用前被声明了。
return 0;
}
b)错误,变量a未被声明
#include <stdio.h>
int main()
{
printf("%d\n", a); // 错误, 变量未声明。
return 0;
}
c)错误,变量a在声明前使用
#include <stdio.h>
int main()
{
printf("%d\n", a); // 错误, 变量在声明前使用。
int a;
return 0;
}
知识点三:变量名命名规则
1)变量名是一个标识符,因此变量名必须符合标识符的命名规则;
2)标识符命名规则:标识符由大小写字母,数字和下划线组成。标识符不能以数字开头,并且必须与现有 的关键词不同;
short apple; //正确
int 88fruit; //错误,不能以数字开头
long _pencil; //正确,可以以下换线或字母开头
float love_you; //正确,字母开头,标识符可以使用下划线
double int; //错误,不能与现有关键词相同
知识点四:变量的初始化与赋值
1)变量只有通过赋值的方式才能使变量的第三要素(变量的值)有意义;
2)变量赋值需使用赋值运算符“=”;
3)变量的赋值两种方式:一变量声明后立刻初始化。二变量先声明,其后再为变量赋值;
a)变量声明后立刻初始化
#include <stdio.h>
int main()
{
int a = 100; // 变量声明后,立即装入100。
printf("%d\n", a);
return 0;
}
b)变量声明后,不初始化。后续使用赋值运算符赋值
#include <stdio.h>
int main()
{
int a; // 变量声明后,为一个随机值
a = 100; // 这里我们使用赋值运算符,将100给了a。
printf("%d\n", a);
return 0;
}
知识点五:初始化与赋值的区别
1)赋值:
a = 100;
赋值运算符左边为已经声明过的变量,右边为数值。这种写法为给变量赋值。
2)初始化:
int a = 100;
赋值运算符左边为一个变量声明,右边为数值,这种写法为变量声明并初始化。
3)变量可以多次赋值,但是不能被多次初始化。多次初始化的写法相当于将 变量a 声明了两次,在第二次声明 变量a 时,编译器发现标识符a已经被使用 过了,便会报告一个编译错误;
#include <stdio.h>
int main()
{
int a;
a = 100;
printf("%d\n", a);
a = 200;
printf("%d\n", a);
return 0;
}
正确;输出结果为100,200
#include <stdio.h>
int main()
{
int a;
a = 100;
printf("%d\n", a);
int a = 200;
printf("%d\n", a);
return 0;
}
错误:变量a被重复声明
知识点六:常量
1)常量是程序中,一开始就被写死在代码中,且不能被改变的量;
2)字面常量:例如:100,200,1.3344,"HelloWorld",”I love motherland“被称之为字面常量。
a)字面常量不需要声明,并且编译器通过它的写法可以立即判断出它的类型;
100 = 101; //错误,常量不能被更改
100 = a; //错误,常量不能被更改
b)被双引号包裹的称之为字符串字面常量;
"HelloWorld" //正确
"HelloWorld" = "你好"; //错误,常量不能被更改
3)字面常量类型:
a)一个变量的类型在声明的时候被确定。而一个常量的类型,在这个常量写在代码中时也能被确定。
b)整数字面常量通常是 int 类型的,除非这个整数字面常量数值过大,超过了 int 类型的范围,那么编译 器会尝试将它看做 unsigned int 类型。如果更大,那么依次类推为更大范围的整型类型,例 如 long , unsigned long , longgned long long 。
c)带小数的字面常量为 double 类型。
4)符号常量:
a)定义符号常量的公式:
#define 符号常量 值
例:我们有一个商品的价格price,目前为3元。现在我们要计算,10件这个商品的价格。
#include <stdio.h>
# define PRICE 3
int main()
{
int num = 10;
int total;
total = num * PRICE;
printf("total:%d", total);
return 0;
}
我们并没有直接写 num * 3 ,而是定义了一个符号常量 PRICE。如果有一天,这个商品的价格改变了,我们把商品的价格定义为符号常量,这样只需要修改这个符号常量所代表的值即可。