c基础篇(一):变量与常量

目录

1.变量

(1)定义

(2)命名

(3)类别

(4)作用域及生命周期

2.常量

(1)定义

(2)类别


1.变量

(1)概念

变量是指用于存储数据值的内存位置。每个变量都有一个特定的数据类型,用于指定变量可以存储的数据类型以及占用的内存空间大小。在使用变量之前,需要先声明或定义变量,以告诉编译器变量的名称、类型和内存分配大小。

(2)命名

  1. 变量名由字母、数字和下划线组成。
  2. 变量名必须以字母或下划线开头。
  3. 变量名区分大小写。
  4. 变量名不能是C语言的关键字或保留字。

例如,以下是一些有效的变量名:

  • x
  • counter
  • total_score

而以下是一些无效的变量名:

  • 123abc(以数字开头)
  • my-variable(包含连字符)
  • for(关键字)

(3)类别

  1. char:字符型数据型;占用一个字节空间
  2. short:短整型;占用两个字节空间
  3. int:整型;占用四个字节空间
  4. long:长整型;占用四个字节空间
  5. long long:更长的整型;占用八个字节空间
  6. float:单精度浮点数;占用四个字节空间
  7. 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)定义

变量的定义通常包括以下步骤:

  1. 声明变量:指定变量的类型和名称,告诉编译器应该为变量分配多少内存空间。
  2. 定义变量:分配实际的内存空间并可选地初始化变量的值。

例:这是一个简单的定义

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-450x1F 等。

浮点数常量如 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关键字修饰。其值在程序执行期间不可修改,即被视为常量。

常变量的特点包括:

  1. 数值不可更改:一旦常变量被赋值,在程序执行期间其值不可修改。任何试图修改常变量的操作都会导致编译错误。

  2. 作用域与普通变量相同:常变量的作用域与普通变量相同,可以根据声明的位置在不同的作用域内使用。

  3. 数据类型可以是任意类型:常变量可以是任何合法的数据类型,包括整数、浮点数、字符、指针等。

  4. 可以用于函数参数:常变量可以作为函数参数传递,以确保函数内部不会修改传入的常量值。

const int MAX_SIZE = 100;
const float PI = 3.14159;

int main()
{
  int a[MAX_SIZE ]={0};
  return 0;
}

  • 21
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值