完全自学C(干货) —— 常量、变量

目录

一,常量

常量分类

二,变量

变量的初始化和赋值

变量的分类(根据作用域)

变量作用域

变量生命周期

变量的使用

变量的命名(标识符)规则


一,常量

常量:不能改变的量,在程序的运行过程中,不能变化的量;

变量:能被改变的量,在程序的运行过程中,可能会改变或者被赋值的量;

常量分类

  • 字面常量,如3; 3.14; 'A';
  • #define定义的标识符常量;
  • 枚举常量;

注:const修饰的变量称为常变量,本质上是变量;

#define MAX 10 //定义标识符常量
enum sex
{
	male,female,secret //枚举常量
};

int main() 
{
	3; 3.14; 'A'; //字面常量
	const int num = 4; //const修饰的常变量
	enum sex s = male;
	return 0; 
}

二,变量

C语言中变量遵循“先定义后使用”的原则;

声明变量的公式:类型 + 标识符 + 封号

注:可连续声明变量;

int main() 
{
	char c;
	short s;
	int n;
	long l;
	float f;
	double d;
	return 0; 
}
int main() 
{
	//连续声明
	int a, b, c, d;
	return 0; 
}

变量的初始化和赋值

  • 在声明时赋值,称为初始化,只可初始化一次;
  • 在声明后赋值,称为赋值,可多次赋值,相当于修改变量值;
int main() 
{
	//声明变量并初始化
	int a = 0;
	//声明变量后,在赋值
	int b;
	b = 1;
	return 0; 
}

变量的分类(根据作用域)

  • 局部变量
  • 全局变量

注:全局变量和局部变量名可相同,且局部变量优先(建议不要相同);

int num = 100; //全局变量(定义在{}之外的变量)
int main() 
{
	int num = 10; //局部变量(定义在{}之内的变量)
	return 0; 
}

变量作用域

  • 作用域scope,程序设计概念,通常来说,一段代码中所用到的名字并不总是有效/可用的,而限定此名字的可用范围就是名字的作用域;
  • 局部变量的作用域,即变量所在的局部范围;
  • 全局变量的作用域,是整个工程;

变量生命周期

  • 生命周期,变量的创建到变量的消亡之间的时间段;
  • 局部变量的生命周期,进入作用域生命周期的开始,出作用域生命周期结束;
  • 全局变量的生命周期,整个程序的生命周期;

变量的使用

如计算两个输入数的和;

int main() 
{
	int num1 = 10; 
	int num2 = 20;
	scanf("%d%d", &num1, &num2); //将输入的数分别赋予num1、num2
	int sum = 0; //C语言规定,变量要定义在代码块的最前面
	sum = num1 + num2;
	printf("sum = %d\n", sum);
	return 0; 
}

运行以上代码,会出现以下错误;

此错误建议使用scanf_s,但scanf是C语言提供的,scanf_s不是标准的c语言提供的,是VS编译器提供的,不具有跨平台性、可移植性;

可在代码最前面,添加#define _CRT_SECURE_NO_WARNINGS,即可消除忽略此错误‘

正确代码应为:

#define _CRT_SECURE_NO_WARNINGS //输入此代码即可避免报错

#include <stdio.h> //引用头文件stdio.h
int main() 
{
	int num1 = 10; 
	int num2 = 20;
	int sum = 0; 
	scanf("%d%d", &num1, &num2); //将输入的数分别赋予num1、num2
	sum = num1 + num2;
	printf("sum = %d\n", sum);
	return 0; 
}

注:如想避免每次都要出入此代码,可在newc++file.cpp文件内输入#define _CRT_SECURE_NO_WARNINGS;此时新建源文件或头文件时,会自动添加此代码;

路径为:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\VC\VCProjectItems

变量的命名(标识符)规则

  • 命名应当直观可拼读,能望文知意,便于记忆和阅读,如使用英文单词;
  • 标识符由大小写字母,数字和下划线组成。标识符不能以数字开头,并且必须与现有的关键词不同。
  • 命名的长度应当符合“最小长度、最大信息”原则,如MaxValue;
  • 当标识符由多个词组成时,每个词的第一个字母应大写,其余小写;
  • 尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号;
  • 对在多个文件之间共同使用的全局变量或函数要加范围限定符(建议使用模块名(缩写)作为范围限定符);
  • 标识符名分为两部分:规范标识符前缀(后缀) + 含义标识。非全局变量可以不用使用范围限定符前缀;
  • 作用域前缀命名规则。
  • 数据类型前缀命名规则。
  • 含义标识命名规则,变量命名使用名词性词组,函数命名使用动词性词组;
  • 程序中不得出现仅靠大小写区分的相似的标识符,如int a、int A;
  • 一个函数名禁止被用于其它之处;
  • 所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词;
  • 考虑到习惯性问题,局部变量中可采用通用的命名方式,仅限于n、i、j 等作为循环变量使用;
  • 定义变量的同时千万千万别忘了初始化,定义变量时编译器并不一定清空了这块内存,它的值可能是无效的数据;
  • 不同类型数据之间的运算要注意精度扩展问题,一般低精度数据将向高精度数据扩展;

(摘抄于C语言基本数据类型简介 - onedime - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值