目录
1.变量
(1)概念
变量是指用于存储数据值的内存位置。每个变量都有一个特定的数据类型,用于指定变量可以存储的数据类型以及占用的内存空间大小。在使用变量之前,需要先声明或定义变量,以告诉编译器变量的名称、类型和内存分配大小。
(2)命名
- 变量名由字母、数字和下划线组成。
- 变量名必须以字母或下划线开头。
- 变量名区分大小写。
- 变量名不能是C语言的关键字或保留字。
例如,以下是一些有效的变量名:
x
counter
total_score
而以下是一些无效的变量名:
123abc
(以数字开头)my-variable
(包含连字符)for
(关键字)
(3)类别
- char:字符型数据型;占用一个字节空间
- short:短整型;占用两个字节空间
- int:整型;占用四个字节空间
- long:长整型;占用四个字节空间
- long long:更长的整型;占用八个字节空间
- float:单精度浮点数;占用四个字节空间
- double:双精度浮点数;占用八个字节空间
可以用代码查看它们所占空间:
printf(“%d\n”,sizeof(char));
printf(“%d\n”,sizeof(short));
printf(“%d\n”,sizeof(int));
printf(“%d\n”,sizeof(long));
printf(“%d\n”,sizeof(long long));
printf(“%d\n”,sizeof(flaot));
printf(“%d\n”,sizeof(double));
(4)定义
变量的定义通常包括以下步骤:
- 声明变量:指定变量的类型和名称,告诉编译器应该为变量分配多少内存空间。
- 定义变量:分配实际的内存空间并可选地初始化变量的值。
例:这是一个简单的定义
int age; // 声明一个整数变量
age = 25; // 定义变量并初始化为25
还可以合并声明和定义
int age = 25; // 声明并定义一个整数变量,并初始化为25
(5)作用域
- 作用域:变量的作用域指的是变量在程序中可见和可访问的范围。变量的作用域由变量的声明位置决定
局部作用域、:局部变量的作用域限定在声明它们的代码块内部。例如,在函数内部声明的变量就是局部变量,它们只能在函数内部访问。一旦超出了声明它们的代码块的范围,这些变量就不再可见或可访问。
void myFunction() {
int x = 10; // x 是局部变量,在 myFunction 函数内部可见
printf("%d", x);
}
全局作用域:全局变量的作用域从声明它们的位置开始,延伸到文件的末尾(文件作用域)。全局变量可以在程序的任何地方访问,包括函数内部和外部。但是,在函数内部如果声明了与全局变量同名的局部变量,则局部变量会覆盖全局变量。
#include <stdio.h>
int globalVar = 20; // 全局变量
void myFunction() {
printf("%d", globalVar); // 在函数内部访问全局变量
}
int main() {
printf("%d", globalVar); // 在 main 函数中访问全局变量
return 0;
}
函数原型作用域:函数原型中声明的参数名具有函数原型作用域,只能在函数原型和函数定义的参数列表中使用。
void myFunction(int x); // x 具有函数原型作用域
块作用域:块作用域是指由花括号 {}
括起来的代码块内部。在块作用域中声明的变量只在该代码块内部可见和可访问。
int main() {
int x = 10; // x 是块作用域变量,在 main 函数中可见
{
int y = 20; // y 也是块作用域变量,在花括号内可见
printf("%d", y);
}
printf("%d", x);
return 0;
}
拓展:在vs中编写项目,源文件中存在多个文件。在1.c需要使用2.c中某一个全局变量,可以在1.c中声明外部符号.例,需要使用2.c的a变量,则在1.c中声明。
extern int a;
int main()
{
printf("%d\n",a);
return 0;
}
2.常量
(1)概念
常量是指在程序执行过程中其值不会改变的数据。与变量不同,常量在程序执行期间保持不变,其值通常在程序的编译阶段就已经确定,并且不能被修改。
(2)类别
-
文字常量:文字常量是指直接在程序中使用的固定值。文字常量可以是整数常量、浮点数常量、字符常量或字符串常量。
整数常量如 123
、-45
、0x1F
等。
浮点数常量如 3.14
、-0.01
等。
字符常量由单引号括起来的单个字符,例如 'A'
、'5'
、'%'
等。
字符串常量由双引号括起来的字符序列,例如 "Hello"
、"world"
、"123"
等。
-
符号常量:符号常量是使用
#define
预处理指令定义的标识符,用于表示一个固定的值或表达式。符号常量通常用大写字母表示,以便与变量区分开来。
#define PI 3.1415926
#define MAX_SIZE 100
- 枚举常量:枚举常量是一组具有相同类型的符号常量的集合,使用
enum
关键字定义。
enum Weekday
{Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday};
注:其中,Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday是常量,不可改变,weekday不是常量
拓展:常变量,使用const关键字修饰。其值在程序执行期间不可修改,即被视为常量。
常变量的特点包括:
-
数值不可更改:一旦常变量被赋值,在程序执行期间其值不可修改。任何试图修改常变量的操作都会导致编译错误。
-
作用域与普通变量相同:常变量的作用域与普通变量相同,可以根据声明的位置在不同的作用域内使用。
-
数据类型可以是任意类型:常变量可以是任何合法的数据类型,包括整数、浮点数、字符、指针等。
-
可以用于函数参数:常变量可以作为函数参数传递,以确保函数内部不会修改传入的常量值。
const int MAX_SIZE = 100;
const float PI = 3.14159;
int main()
{
int a[MAX_SIZE ]={0};
return 0;
}