本篇摘要:
1:变量与常量数据
2:数据:数据类型和关键字
---------------------------------------------------------------------------------------------------------------------------------
变量和常量数据:
在C语言中,变量是一块命名的内存空间,用于存储程序运行过程中可能会改变的数据。变量在使用之前需要声明,并且可以在声明的同时初始化。
#include <stdio.h>
int main() {
int x = 10; // 定义一个整型变量 x,并初始化为 10
printf("%d\n", x); // 输出 10
x = 20; // 改变变量 x 的值为 20
printf("%d\n", x); // 输出 20
return 0;
}
常量在C语言中是一种在程序运行期间其值不改变的量。常量可以通过#define
预处理指令或者const
关键字来定义。
#define 定义:
#include <stdio.h>
#define PI 3.14159 // 定义一个常量 PI
int main() {
printf("%f\n", PI); // 输出 3.141590
return 0;
}
const定义:
#include <stdio.h>
int main() {
const double PI = 3.14159; // 定义一个常量 PI
printf("%f\n", PI); // 输出 3.141590
// PI = 3.14; // 这行代码会导致编译错误,因为 PI 是一个常量,不可修改
return 0;
}
变量和常量的区别
-
值的可变性:
- 变量:值可以在程序执行过程中改变。
- 常量:值在程序执行过程中不改变。
-
定义方式:
- 变量:通过数据类型和变量名来定义。
- 常量:通过
#define
预处理指令或者const
关键字来定义。
-
存储方式:
- 变量:存储在内存的可变区域,可以进行读写操作。
- 常量:存储在内存的只读区域(使用
const
关键字定义的常量),或者在编译期进行替换(使用#define
定义的常量)。
总结
在C语言中,理解和正确使用变量和常量是编写高效、可靠的代码的基础。变量用于存储和操作动态数据,而常量用于表示程序中固定不变的值。选择适当的方式定义常量(#define
或const
)取决于具体的使用场景和需求。
---------------------------------------------------------------------------------------------------------------------------------
数据:数据类型和关键字
在C语言中,数据类型和关键字是编程的基础。数据类型用于定义变量和常量的类型,而关键字是C语言的保留字,用于执行特定的操作或控制程序的行为。
数据类型
C语言中的数据类型可以分为基本数据类型和派生数据类型。
基本数据类型
-
整型(Integer types):
int
:标准整数类型,通常占用4个字节。short
:短整数类型,通常占用2个字节。long
:长整数类型,通常占用4或8个字节。long long
:更长的整数类型,通常占用8个字节。unsigned
:无符号整数类型,可以与上述类型组合使用,例如unsigned int
。
-
字符型(Character types):
char
:字符类型,通常占用1个字节。可以存储单个字符或小的整数。unsigned char
:无符号字符类型。
-
浮点型(Floating-point types):
float
:单精度浮点数类型,通常占用4个字节。double
:双精度浮点数类型,通常占用8个字节。long double
:扩展精度浮点数类型,通常占用12或16个字节。
关键字
C语言中的关键字是具有特殊意义的保留字,不能用作变量名或其他标识符。这些关键字用于控制程序的结构和行为。以下是一些常见的关键字:
-
数据类型相关:
int
char
float
double
void
short
long
signed
unsigned
-
控制语句:
if
else
switch
case
default
for
do
while
break
continue
goto
return
-
存储类说明符:
auto
register
static
extern
const
volatile
-
其他:
struct
union
enum
typedef
sizeof
inline
示例代码:
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[50];
int age;
};
int main() {
// 基本数据类型
int a = 10;
float b = 5.5;
char c = 'A';
// 指针
int *p = &a;
// 数组
int arr[5] = {1, 2, 3, 4, 5};
// 结构体
struct Person person;
person.age = 30;
snprintf(person.name, sizeof(person.name), "John Doe");
// 输出
printf("Integer: %d\n", a);
printf("Float: %.2f\n", b);
printf("Char: %c\n", c);
printf("Pointer: %d\n", *p);
printf("Array: %d %d %d %d %d\n", arr[0], arr[1], arr[2], arr[3], arr[4]);
printf("Person: Name = %s, Age = %d\n", person.name, person.age);
return 0;
}
运行结果:
Integer: 10 Float: 5.50 Char: A Pointer: 10 Array: 1 2 3 4 5 Person: Name = John Doe, Age = 30