字符型常量和字符串常量的用法是什么?区别?

字符型常量和字符串常量的用法是什么?区别?,第1张

字符常量是指用一对单引号括起来的一个字符。如‘a’,‘9’,‘!’。一般作为整型数据来进行运算。

字符串常量是指用双引号(“”)括起来的0个或者多个字符组成的序列一个字符串,一般用于存放字符串进行输出。

字符型常量和字符串常量的区别为:字符不同、存储不同、运算不同。

一、字符不同

1、字符型常量:字符型常量仅含单个ASCII字符,常量长度为1。

2、字符串常量:字符串常量可以有若干个ASCII字符,常量长度大于等于0。

二、存储不同

1、字符型常量:字符型常量在存储上只占一个字节。

2、字符串常量:字符串常量在存储上占若干个字节(至少一个字符结束标志) ,视常量长度而定。

三、运算不同

1、字符型常量:字符型常量相当于一个整型值,可以参加表达式运算。

2、字符串常量:字符串常量代表一个地址值(该字符串在内存中存放位置),不可以参加表达式运算。

1
#define //不分配存储空间
2
{
const i = 0;//局部变量,静态
}
3
const i = 0;//全局变量,执行段(放置代码的位置)
{}
不知道你说的是哪种

int a,b;a=8;b=8;这首先是一个定义变量并给变量赋值,实际上并没有涉及到常量,呵呵,但是它们有不同的地址,因为它们的变量名不同,地址是根据变量名分配地址的,那么常量呢,它也是有地址的,只是和变量存贮的地方不同,但是存储的形式是一样的,就是在内存的地方不同,内存中有专门放常量的,通过存储方法的角度是区分不了变量和常量的,只能通过其存储的值是否变化来区分(以人的角度),和存放的地点不同区分(机器的角度)

您好,计算机一切数据都放在内存(这儿不讨论硬盘)中,常量也不例外。所谓的常量区就是一块专门腾出来放常量的内存区罢了。计算机每个内存块都有编号,这个编号就是内存块的地址,这个地址CPU可以找得到。在需要用某个常量的地址的时候,CPU就会找到这个常量的所在的内存,记下它的编号,将这个编号数据存入另一块小内存中。
打个比方:内存好像一条大街,大街上有好多房子,每个房子都相当于一个小内存块。然后我们人为圈出一部分房子说这里只能放常量,那么从此这个地方就叫常量区了。对于每个房子,都会有一个门牌号,街道管理员(CPU)可以很熟练地找到它。当你需要在街上寻找某个人(常量)时,街道管理员就会顺着大街按门牌号一间一间找下去,直到在某个房子里找到你要见的人(常量)。如果你需要记住这个人住哪间房,以方便下次寻找,那么街道管理员(CPU)就会记下这间房的门牌号(地址),并把写有门牌号的纸条放到另一个房子(也是内存)中。这样,下次你再要找那个人(常量)时,你直接去存放门牌号的那间房看看纸条上写的数字,就可以很快找到他了(不用一间一间挨着找了)~~
当然,上述例子比较粗糙,但基本就是这么个原理,实际上你每定义一个常量,CPU就会自动关联它的地址,等你下次用常量时,会直接通过地址找出来。
如果懂了请采纳,还有疑问请提出来共同探讨~~

#define
PI
314
做的事情是将源代码里PI的地方全部用314替掉
所以你们老师说符号常量不占空间
你说的也是对的,314是占空间的
但这个称为浮点常量,编译器用到的时候会临时给它一块内存空间,用完即销毁
顺便似乎符号常量是中国教材生造的
There
are
five
kinds
of
tokens:
identifiers,
keywords,
literals,
operators,
and
other
separators
(ISO
14882)
这里的
literal
似乎不包含符号的意思。

方法是由线程来执行的,每个线程都有一块属于自己的栈空间。也就是说线程创建的时候,这个栈空间也就创建了,线程销毁时这个栈也就销毁。这个栈的内存只有线程本身可以访问,称它为虚拟机栈,或者方法栈。
每当线程执行一个方法时,会在自己的方法栈中添加一个栈帧,你可以理解为放了一个东西进栈。方法结束时,这个栈帧就会出栈销毁。eclipse调试窗口形象的描述了这个栈,你可以看到随着方法的调用,栈帧会增多,方法执行完后栈帧就减少。当前正在执行的方法栈帧肯定是在栈的最顶部。
每一个栈帧都包含一个局部变量表用来存放局部变量,线程调用方法创建栈帧后,将this引用、方法的参数、局部变量,全部按顺序依次分配在这个栈帧的局部变量表中,显然,当方法结束后,栈帧出栈销毁,这些局部变量也就释放了。你在调试的时候,看到的variabel窗口中的变量,就是局部变量表中的变量,可以看到实例方法中this变量总是在最上面,然后方法的参数、方法中的局部变量依次排下来。
另外,方法中的局部变量并不叫常量,这个你要注意一下

首先,在C语言中,存储器实际上是一个大的字节数组,字节数组中的每一个元素称为存储单元,基本的存储单元为字节。

其次,在C语言中,每一个存储单元占一个字节,每一个字节对应一个地址,这个地址即为内存地址。

再次,在C语言中,变量名是一个标识符,在C语言中标识符只能有数字、字母、下划线(_)组成,且第一个符号必须是字母或者下划线(_)。

最后,对于C语言中的变量来说,它具备两个基本的属性,一个是地址,一个是内容。正是因为此,所以在函数参数传递时有两种方法一种是传址,一种是传值 。比如下面的代码:

int a = 2; //a是变量名,它有两个属性,一个是地址,一个是值。
int p = &a; //使用取地址运算符&即可获取变量的地址
int b = a; //使用变量名可以取得变量的值
int c = p; //使用间接引用运算符也可以取得变量a的值。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13344337.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-18
下一篇 2023-07-18

发表评论

登录后才能评论

评论列表(0条)

保存