C语言中的常量和变量(一)

1. C语言中的常量

常量的分类

666666   		//数字常量
const int a   	//const修饰的变量
#define	a 1		//宏定义常量,相当与把a替换为(数字常量)1
enum 			//枚举常量

常量不可以被修改,故const修饰的常变量在定义时需要被初始化。
const修饰的常变量不可以通过赋值进行更改,但是它可以通过指针进行修改。
在这里插入图片描述

2. C语言中的变量

2.1 一点回顾

  C语言中,1个bit对应于二进制中的1位(0或1),在实际的电路中可以代表高低电平。由于0和1的差别,演化出了计算机世界中千万种可能。这里建议学习《数字电路》可以加深对之的理解!

换算:

1字节(Byte)=8位(bit)
1KB=1024B 
1MB=1024KB 
1GB=1024MB 
1TB=1024GB

2.2 数据类型关键字

char  			//字符类型 8字节,省略 signed 可以表示正负
short 			//短整形
int				//整形
long			//长整形
long long		//超长整形
float		 	//单精度浮点	
double			//双精度浮点
    
unsigned 		//无符号类型变量或函数
signed   		//有符号类型变量或函数  
    
//tips:给float类型变量赋值时,需指定(f),否则默认为double类型(有被截断的风险)
float a = 6;
a = 6.6f

一段代码说明类型空间大小:

#include <stdio.h>

int main()
{
	printf(" %s\t\t类型的大小为:%d(byte)\n", "char", sizeof(char));
	printf(" %s\t\t类型的大小为:%d(byte)\n", "short", sizeof(short));
	printf(" %s\t\t类型的大小为:%d(byte)\n", "int", sizeof(int));
	printf(" %s\t\t类型的大小为:%d(byte)\n", "long", sizeof(long));
	printf(" %s\t类型的大小为:%d(byte)\n", "long long", sizeof(long long));
	printf(" %s\t\t类型的大小为:%d(byte)\n", "float", sizeof(float));
	printf(" %s\t\t类型的大小为:%d(byte)\n", "double", sizeof(double));
	return 0;
}

VS2015运行结果(有点小小的改动,算出了bit大小,有兴趣可以自己实现):
在这里插入图片描述

2.3 变量的分类(全局变量和局部变量 )

  全局定义的变量可以在全局使用,局部定义的变量只能在{ }中使用。当局部变量与全局重名时,会发生什么呢?来看看!!

在这里插入图片描述
  由以上代码的运行结果可以看到,当变量在{ }外和{ }中有同名变量被定义时,打印出的数值为{ }中定义的变量。而局部变量的作用域只在{ }中有效,即当局部变量出了{ }作用域后会被销毁。

tips:全局变量本身具有外部链接属性;当static修饰全局变量时,全局变量失去外部链接属性,变为内部链接属性。表现为,static修饰的全局变量在其他文件中被extern声明时,编译链接报错。 static+函数同理。 故static的一个用法:可以保证C文件变量在命名时,只有自己可以使用。防止与其他C文件变量命名冲突问题(全局变量可以在头文件中声明,但不能在头文件中定义;头文件会被多个C文件包含,编译器会报重定义的错误,此时用static可以编译通过,因为保证了该变量在只能与头文件同名的C文件中使用)

  • 另外:局部变量在创建时,不管是单独变量还是数组,没有初始化时默认的是随机值;而全局变量创建时,默认为0static修饰的变量由栈放到了静态区,生命周期变到了全局,但是作用域仍然在函数里。

2.4 变量的创建

尽量把变量的创建放在代码块( 一般 { } 中的内容为一个代码块)最前面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值