C语言入门-基本数据类型、变量和常量(学习笔记)

一、数据类型

程序为了解决不同的问题,需要用到不同的变量(就好比物理公式中的不同参数)。数据类型表示了不同类型的变量以及其在内存中的存储形式,并且不同的变量可以进行的操作处理也不尽相同。c语言规定了7种基本数据类型,分别是:

整形
short、int、long、long long
实型(也称浮点型)
float、double
字符型
char

变量的定义方式如下:

int a = 0;

上述代码定义了一个整形变量a,并将其值初始化为0。

1.整形

整形储存整数变量,如-1、0、1、2等。short、int、long和long long表示这些整形变量在内存中所占的空间大小不同(关于内存的介绍会在后文中讲述),由于占据不同大小的空间,这些类型的取值范围也不同。

类型占据空间取值范围
short2byte-32 768 ~ 32 767
int4byte-2 147 483 648 ~ 2 147 483 647
long4byte-2 147 483 648 ~ 2 147 483 647
long long8byte-9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807

注:c语言规定long类型大小≥ int即可。

2.实型(浮点型)

实型储存实数变量(即包含小数的数值),类似整型中不同的类型,float和double在内存中所占据的空间大小也不同,float占据4个字节(byte),double占据8个字节。但是不同于整型的是,float和double的区别在于小数的精度不同,这与浮点数在内存中的储存方式有关。

类型名称占据空间
float单精度型4byte
double双精度型8byte

3.字符型

字符型变量储存内容为字符,每一个字符型变量只能储存一个字符,想要储存多个字符(字符串)就要使用数组。

//储存字符
char ch = 'a';
//储存字符串
char ch[] = "abc";

单个字符使用单引号''表示,字符串使用双引号""表示

二、变量和常量

在解决问题过程中,有些量是不变的(比如圆周率、身份证号、血型等),而有些量是变化的(如身高、体重、价格)。在c语言中,不变的值称为常量,变化的值成为变量。

1.变量

在上一节中提到了变量的定义方式,变量又分为局部变量和全局变量,二者的作用域不同。从直观角度来看,{}外部的变量称为全局变量,{}内部的变量称为局部变量。

int a = 0;       //a是一个全局变量
int main()
{
	int b = 0;   //b是一个局部变量
	return 0;
}

变量在创建时应该对其进行初始化(即赋值)。若不为其赋值,变量储存的为一个不确定的值,当代码过于复杂时,容易忘记为其赋值而导致代码运行过程中出现问题。

1.1全局变量

全局变量可以被整个项目工程使用,在工程开始时被创建,结束时销毁,同一工程内的不同文件也可以使用。
请添加图片描述
全局变量有作用域广的特点,但是也有明显的缺点,全局变量可以被任意一处代码调用,因此该变量容易被修改,安全性低。

1.1局部变量

局部变量的作用域是其所在的代码块内部(即{}的内部),局部变量只能在其作用域内使用,程序进入作用域时创建,程序执行完这部分代码块之后局部变量销毁。
当局部变量和全局变量名称相同时,调用时优先调用局部变量,当范围内不存在局部变量时,才调用全局变量。例如,下面这段代码打印出a的值为100,而不是10。

int a = 10;
int main()
{
	int a = 100;
	printf("%d", a);   //在屏幕上打印a的值
	return 0 ;
}

为了防止程序出错,局部变量和全局变量不应该使用相同的名字。

2.常量

C语言中常见的常量分为以下几种:

  1. 字面常量
  2. const修饰的常变量
  3. #define定义的标识符常量
  4. 枚举常量

2.1字面常量

字面常量即直接写出来的常量,包括数字、字符、字符串等(e.g. 3.14,'w',"abc" )

2.2const修饰的常变量

使用const修饰的变量不可被修改,称为常变量,形式如下:

const int b = 10;
b = 20;     //此处对b进行修改时程序会报错

但是const修饰的本质是变量,只是不能被修改,有部分常量的属性。例如,定义数组时元素个数需要使用常量,这时使用const定义的常变量就会报错

const int b = 10;
int arr[b] = { 0 };  //此处代码会报错,提醒[]内应该是常量表达式

2.3#define定义的标识符常量

#define定义的标识符常量使用方法如下:

#define MAX = 100;
#define STR = "abc";
int main()
{
	printf("%d\n", MAX);
	int a = Max;
	printf("%d\n", a);
	printf("%s\n", STR);
	
	return 0;
}

可以理解为#define定义了一个标识符,它具有对应的值,是不能被修改的。

2.4枚举常量

某些可以列举出来的量可以创建成枚举类型,并且可以以这个枚举类型来创建变量。例如三原色(RGB):

enum Color
{
	RED,
	GREEN,
	BLUE
};
int main()
{
	enum Color c = RED;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值