2.3 C语言之变量命名与声明

2023-12-14 19:34:52

2.3 C语言之变量命名与声明

一、变量名

  • 对变量的命名与符号常量的命名存在一些限制和约定
    • 名字是由字母和数字组成的序列,但第一个字符必须是字母。下划线_被看做字母,通常用于命名较长的变量名,以提高其可读性。
    • 大写字母与小写字母是有区别的,x与X是两个不同的名字。在传统的c语言中,变量名使用小写字母,符号常量名全部使用大写字母,这是一个不错的做法
    • 保留关键字(保留给语言本身使用的),如if, else, int, float等不能用作变量名
    • 变量名要能够尽量从字面上表达变量的用途
    • 局部变量一般使用较短的变量名(尤其是循环控制变量),外部变量使用较长的名字

二、声明

  • 所有变量必须先声明,后使用
  • 一个声明指定一种变量类型,后面所带的变量表可以包含一个或多个该类型的变量。比如:
    int lower, upper, step;
  • 一个声明语句中的多个变量可以拆分在多个声明语句中。比如上面的声明语句可以等价的写成下面的形式:
    int lower;
    int upper;
    int step;
    按照这种形式书写代码需要占用较多的空间,但是便于向声明语句中添加注释,也便于日后修改。
  • 可以在声明的同时对变量进行初始化。在声明中,如果变量名的后面紧跟一个等号以及一个表达式,该表达式充当对变量进行初始化的初始化表达式。比如:
    char a = ‘\n’;
    int i = 0;
    int limit = MAXLINE + 1;
    • 如果变量不是局部变量,初始化表达式必须为常量表达式(程序开始执行之前进行初始化)
    • 如果变量是局部变量,每次进入函数或程序块,显式初始化的自动变量都将被初始化一次,其初始化表达式可以是任何表达式
    • 默认情况下,外部变量和静态变量将被初始化为0。未经显式初始化的自动变量的值为未定义值(即无效值)
	#include <stdio.h>
	
	int a; // 外部变量默认初始化
	static int b; // 静态变量默认初始化
	static int d = 2 + 2; // 静态变量初始化,只支持常量表达式
	main()
	{
		int c; // 局部变量, 未定义值
		int f = 2; // 局部变量初始化,常量表达式
		int g = f + 2; // 局部变量初始化,表达式
		printf("%d\t%d\t%d\t%d\n", a, b, d, g);
		// printf("%d", c); c未初始化,编译错误
		return 0;
	}
  • 任何变量的声明都可以使用const限定符限定。该限定符指定变量的值不能被修改。对数组而言,const限定符指定数组所有元素的值都不能被修改。
	#include <stdio.h>
	int strlen(const char s[]);
	main()
	{
		const int a = 1;
		// a = 2;  编译错误
		const char msg[] = "warning: ";
		// msg[0] = 'a'; 编译错误
		return 0;
	}
	
	int strlen(const char s[]) {
		// s[0] = 1; 编译错误
	}

文章来源:https://blog.csdn.net/unwrapping/article/details/134916682
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。