未结束的字符串常量,字符常量与字符串常量的区别是什么

伏羲号

未结束的字符串常量,字符常量与字符串常量的区别是什么?

字符常量与字符串常量的区别: 形式不同:字符常量是单引号引起的一个字符;字符串常量是双引号引起的若干个字符。 含义不同:字符常量相当于一个整型值,可以参加表达式的运算;字符串常量代表一个地址值(该字符串在内存中存放的位置)。字符常量可以赋值给字符变量,如“char b='a';”,但不能把一个字符串常量赋给一个字符变量,同时也不能对字符串常量赋值。

未结束的字符串常量,字符常量与字符串常量的区别是什么

占内存不同:字符常量只占一个字节;字符串常量占若干个字节,(至少一个字符结束标志)。不占据任何存储空间属于指令的一部分,编译后不再更改。字符串常量是一对双引号括起来的字符序列。

合法常量怎么判断?

整型分前缀(0、0x)和后缀(u、l),每种进制中用的数字不同;

浮点数后缀f、l,指数表示注意是否在范围内;

字符与字符串主要注意转义字符后面是否合法;

a:整数中不允许出现逗号;

b:科学计数法表示1.5乘以10的2.0次方,由于科学计数法指数部分只能是整数。

c:\号是转义符号后面要跟其他符号来表示具体字符,这里什么都没跟就写反引号了;

d:字符串常量是连续的2个字符,第1个字符的ascii码是7,第2个字符的ascii码是0作为字符串结束符号,第1个字符是响铃符号,输出时会让默认扬声器发出声音。

C语言中合法的字符型常量是?

C语言中,一个字符常量代表ASCII字符集中的一个字符,字符常量在内存中占4个字节,存放的是字符的ASCII码(整型数据)。

在C语言中一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。大小写字母代表不同的字常量;单引号中的空格也是;字符常量只能包含一个字符;字符常量只能用但括号括起来。

字符串常量池是在方法区中还是在独立的区域中?

String str = "nihao"; 程序开始执行这句代码,肯定是要创建一个对象的, 只是这个对象创建后就是一个常量,不可以更改, 并且这个对象是放在串池里面的,也就是你说的那个常量池

如果我后面在写一句代码: String other = "nihao";

str和other这2个引用的地址就是一样的, 因为str和other的声明方式是一样的, 都是在串池, str的对象创建时,串池中没有"nihao"这个常量,就创建一个. other对象创建时,发现串池中已经有了"nihao"这个常量, 就直接拿过来用就是了

String a1 = new String("nihao");

String b1 = new String("nihao");

但是如果我们通过上面的方式直接new String() 那个a1和b1这2个引用的对象就不是在串池中了,而是在堆中, 但是new String() 的参数"nihao"也是一个字符串啊, 这个字符串从哪里来呢?如果我们吧代码拆分一下就明白了:

String para = "nihao";

String a1 = new String(para);

就会发现String a1 = new String("nihao"); 这一句代码实际上创建了2个对象, 一个是String对象,存放在堆中, 一个是字符串常量对象,存放在串池中

c语言中合法的常量?

八进制常量:开头必须是0,且八进制是0-7之间组成的数,例如,029就是错误的八进制表示方式。

十六进制常量:0X开头,包含字母ABCDEF,不区分大小写,例如0x与0X一样,0Xaa与0xAA,都是正确的。

实数型常量:必须有小数点,例如定义double a=1就是错误的,必须写成double a=1.0,另外写成a=1,0中间是逗号,就更是错误的了。

e与E,表示以10为底数的幂数,且e与E后面必须跟整数,若是小数,也是错误。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,95人围观)

还没有评论,来说两句吧...