C语言是非常重要的一门程序设计语言,学好C语言再去学习其他编程语言将变得很轻松,因为大部分语言的都有相同的共性存在。 本节我们来讲解一下C语言中的基本数据类型,掌握如何使用变量以及变量在编程中的作用及重要性,学会区分变量的存储类型,学会如何声明并初始化变量,了解字符和数值之间的不同。
在学习变量之前,我们先来了解一下计算机内存的一些基本知识,了解计算机内存能很好地帮助理解C编程
(资料图片)
RAM随机存储器,通常位于计算机内部,具有易失特性,RAM只能在计算机运行时保存信息,计算机掉电后丢失。每台计算机都需要一定容量的RAM硬件支持。 在计算机系统中,用字节(Byte)表示RAM的大小1GB=1024MB,1MB=1024KB,1KB=1024B字节是计算机数据存储的基本单位,在计算机中RAM是按顺序逐字节排列的,每个字节都有唯一的地址(即我们常说的内存地址)。 地址按顺序付给内存地址,一直增长到内存的最大值。了解了内存地址有助于C编程中理解变量的存储及所占用的内存空间大小。 在编程中出现问题时方便我们知道如何去查找问题,而不是一头雾水。说到变量就不得不说变量的命名,说到变量命名就不得不说编程中代码的规范问题。 虽然在C编程中变量命名是有一定自由的,但是为了我们编写的代码具有可读性、友好性、可维护性,在开始进行编程时,就要养成良好的编程习惯,按照程序的规范去编写代码。 具有良好的编码规范和习惯能很好的减少编程中出现不必要的错误。 下面我们说一下基本的编码规范。
在C编程中使用变量,我们首先就是要知道如何创建和命名变量。 C语言中的变量必须遵循以下规则
变量名由字母(a-z,A-Z)、数字(0-9)、下划线组成(_)变量名的第一个字符必须为字母和下划线C语言区分大小写,Test和test是两个不同的变量C语言中的关键不能用作变量,因为关键字是C语言的一部分一般C编译器不允许变量的命名字符无限长,一般不超过31个#include int main(int argc, char const *argv[]){ /* 变量定义 */ int iTest; // 合法 int itest; // 合法 int iTest1; // 合法 int iTest_1; // 合法 int _iTest; // 合法 int 1iTest; // 非法 return 0;}
定义函数时一般用单词表示函数的作用,并且每个单词首字母大写。 这是作者习惯性用法,不是必须的。
例如:
int TestAddTwoNumber(int iA, int iB) { return (iA + iB); }
程序中代码的注释是为了做说明,方便理解代码的功能。 良好的代码注释能给人更好的阅读感,并且方便其他人进行代码的维护。 C编程中代码的注释有//和/**/两种
// 木荣君本人习惯做单行注释/**/ 木荣君本人习惯做多行注释C语言中有多种不同的数值变量,不同类型的数值变量需要不同的内存空间,而且占用的内存空间也不尽相同。 选用合适的变量类型,可以使程序的运行效率提高。
C语言中的数值变量基本上分两大类:
整型变量,存储没有小数部分的数值,分为有符号和无符号变量。 有符号变量可以存储正负值,无符号变量只能存储正值和零。浮点型变量:存储带有小数部分的值下面看一下C语言的数值数据类型
不同的数值变量类型所占内存大小不同,依不同的计算机平台而有差异。 下面我们看一下在64位的ubuntu上数值变量类型的大小。#include int main(int argc, char const *argv[]){ printf("sizeof(char) = %lu\\n", sizeof(char)); printf("sizeof(short) = %lu\\n", sizeof(short)); printf("sizeof(int) = %lu\\n", sizeof(int)); printf("sizeof(long) = %lu\\n", sizeof(long)); printf("sizeof(long long) = %lu\\n", sizeof(long long)); printf("sizeof(unsigned char) = %lu\\n", sizeof(unsigned char)); printf("sizeof(unsigned short) = %lu\\n", sizeof(unsigned short)); printf("sizeof(unsigned int) = %lu\\n", sizeof(unsigned int)); printf("sizeof(unsigned long) = %lu\\n", sizeof(unsigned long)); printf("sizeof(unsigned long long) = %lu\\n", sizeof(unsigned long long)); printf("sizeof(float) = %lu\\n", sizeof(float)); printf("sizeof(double) = %lu\\n", sizeof(double)); return 0;}
在C程序中,要想使用变量,前提是必须先声明。 变量声明
就是告诉编译器变量的类型和名称,建议在声明变量时进行指定初始值。 这样做是有好处的,因为变量不指定初始值,会默认赋值随机值。
变量的声明格式如下:typename varname
typename:指定变量的类型 varname:指定变量名
例如:
int iVar1,iVar2; int iVar2; int iVar4; float fVar5; double dVar6;
上面提到了声明变量时如果不进行指定初始值,系统会随机赋一个随机值。 所以在声明变量时进行赋值初始值。
int iVar1 = 0, iVar2 = 1; int iVar2 = 1; int iVar4 = -1; float fVar5 = 0.1; double dVar6 = 1.2;
注意,赋值变量初始值时不能超过变量的表示范围。 如果超过范围编译可以通过,但是程序运行时可能发生意想不到的问题。常量与变量类似,但是与变量不同的是存储在常量中的值在程序运行中是不可改变的。 C语言中有两种类型的常量字面常量和符号常量。
int cnt = 20; float rate = 0.51
20和0.51都是字面常量,上面的声明是将这两个字面常量分别存储在cnt和rate中。 其中,20不带小数点的字面常量是整型常量,0.51是带小数点的字面常量是浮点型常量。 C编译器将没有小数点的常量认为整型常量,带有小数点的常量为浮点型常量。程序中,用常量名来表示符号常量。 与字面常量一样,程序运行时也不能改变符号常量。 符号常量的好处是为编码和阅读带来便利性。
#include #define PI3.14 // 定义符号常量int main(){ double dRes = 2.PI; printf("%lf\\n", dRes); return 0;}
C编程中可以选择变量的不同存储形式,分为静态存储和动态存储。 可以通过存储类型修饰符来告诉编译器是什么类型的变量。
静态存储是指程序运行分配的固定存储方式,而动态存储则是在程序运行期间动态分配存储空间。
auto变量 修饰一个局部变量为自动的,就是每次执行到该变量时,就会产生一个新的变量。 如果不加auto关键,默认也是自动变量。static变量 修饰为静态变量,static变量在语句执行期间始终保持它的值,并且初始化只在第一次执行时起作用,在随后的执行中保持上一次执行时的值。register变量 称为寄存器变量。 把某个局部变量存放在计算机的硬件寄存器而不是内存中,这样可以提高程序的运行效率。 实际编程中用处不大。extern变量 为外部存储变量,extern声明程序中用到的在其他地方定义的变量。/* 文件1 */#include int main(){ extern int a; printf("a = %d\\n", a); return 0;}/* 文件2 */#include int a = 100;
那么上述结果打印输出a = 100;
本节阐述了有关变量和常量的基本内容,以及如何在程序中使用变量。 最后介绍了变量的存储类型,掌握这些基本的知识是C编程所应该具备的能力。 希望通过本节对你有所帮助。 最重要的是我们要学会从编写代码中去理解这些知识,不要纸上谈兵,要学会操练起来。
标签: