学了这么久C语言我居然不知道变量常量?

在C语言中,可以使用的数据分为两类:常量和变量。

常量:

    常量顾名思义就是固定不变的量,在系统编译时已经确定的,常用关键字const来创建,并且在创建常量必须设置它的初始值。常量的类型只能为下列类型之一:sbyte,byte,short,ushort,int,unit,long,ulong,cahr,float,decimal,double,bool,string等。

const int PI=23;    //正确的声明方法
	const int CI;   //错误,定义常量时没有初始化

变量:

1.含义:

     变量是指用来存储特定类型的数据,可以根据需求随时改变变量中所存储的数据值。人类用大脑或纸来记录数据,而计算机则是用内存:在内存中开辟一部分空间,把数据化成二进制存放进去,这部分存储数据的空间便是变量,即变量是内存中的一段存储区域。至于为什么叫变量,是因为这一段存储空间所存的数据可以改变。比如下面的代码。

int a;            //定义变量a,a的值不确定
a=2;              //执行后,a的值为2
a=3;              //执行后,a的值为3

变量a刚分配空间时,其内容是不确定的,执行”a=2;“ 后,a中的值变成2;执行”a=3;” 后,其值变为3.其变化过程如图所示。

 图中蓝色的两个字节是系统分配给a用来存整数的,因为其中所存的数可以改变,所以把这两个字节称为变量a。

说明:几乎所有微机的CPU在存放数据时都采用小端模式,即先存放低字节,再存放高字节。


2.变量的类型:

   其中unsigned是无符号的意思,C语言中有些数据不可能是负数,没有必要用到最高位表示正负,故unsigned类型的数据,其最高位不再表示负号,而是跟后面的位一样代表大小。

存储地址的变量称为指针变量。

  指针变量在内存中所分配的字节数一般与int类型变量相同,C语言中可以用运算符sizeof()求得某种类型或某项数据在内存中占用多少字节。

char c;
float x;
printf("%d,%d",sizeof(c),sizeof(char));             //输出1,1
printf("%d,%d",sizeof(float),sizeof(x));            //输出4,4

 3.变量的定义

   指针变量的定义和普通变量定义格式类似,区别是:指针变量名字前面要多写一个 *,例如:

char *p;                                      //定义了一个指针变量p,用来存char型变量的地址

int *p1,*p2;                                 //定义了两个指针变量p1,p2,都用来存int型变量的地址

float x,*p3,y,*p4;                         //定义了两个普通变量x,y和两个指针变量p3,p4

 变量必须先定义,才能使用。

   定义变量的目的:

      一是给变量起个名字,以便在程序中分辨它;二是把变量的类型告诉计算机,以便让计算机给变量分配空间。因为有了类型,计算机才能知道该给变量分配多少字节,才能知道变量的值用什么方式存储。例如:若是字符变量则分配1字节,变量的值用ASCII(也叫ASCALL码);若是短整型变量则分配2字节,用补码存储........

 4.变量的命名

   不管是变量,还是今后要学到的数组,函数和结构体等,每一样东西都应该有一个名字作为标识,其名字即为标识符。

   C语言对标识符有如下要求:

<1>标识符只能由英文字母,数字和下划线组成,但不能以数字开头。

<2>C语言是区分大小写的,即大小写被认为是两个不同的字符。因此name和Name是两个不同的标识符。

<3>不允许用关键字作为标识符。关键字是指已经赋予一定含义的字符序列,如int ,float,for ,if ,return 等

<4>标识符有长度限制,超过限制时,后面的字符不起作用。长度建议不要超过32个字符

5.变量的属性

  每个变量都有地址两个属性。

  变量的值指的是变量在内存中所存的内容。变量的地址指的是变量在内存中所处的位置,其起始地址称为变量的地址。

  设有代码“short a=5;”,则程序运行时需要在内存中分配两个字节作为变量a的存储区域,并且将5存放进去。设系统给a分配的空间是内存中1027和1028两个单元,如图下,则变量的值是5,变量的地址是1027。

    把内存的哪两个字节分配给变量是不可预知的,但变量分配在什么地方,系统是知道的。每当在内存中给一个变量分配了空间,系统都会把变量名和它的地址,类型等信息记录下来,以便将来找到它,存取它。

    因此,在变量获取空间之后,其地址是可以被知道的,用取地址运算符&便可以获取变量的地址。

下面的程序可以输出整型变量a的两个属性

#include<stdio.h>
main()
{
	int a=5;
	printf("%d,%p\n", a, &a);              //%p表示用十六进制数输出地址
	return 0;
}

运行结果

 试一试:把代码中的“=5“去掉,运行一遍程序,看a还有没有值。


6.变量的赋值和赋初值

      给指针变量赋值

int a,*p;                  //在内存中给a和p分配空间

p=&a;                     //把a的地址存到p中,即给p赋值

     赋初值

  在给变量分配空间的时候就向其中存放数据,称为赋初值。例如:

 int a=10;

     赋值和赋初值的区别:

   开辟空间和存放数据这两件事情若是分两次完成的,是赋值;开辟空间和存放数据这两件事情是一次就完成的,是赋初值。

定义若干变量时,可以只对一个或一部分变量赋初值,例如:

int a,b=1,c,d=3,e,f;

也可以给全部变量都赋初值,例如:

int a=5,b=5,c=5;

注意:变量初值相同时,不可以写成:

int a=b=c=5;

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未央吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值