A. 使用数组存储字符串常量,数组大小最小值如何确定
如果你的bird数组仅仅用于存储字符类型的元素,而不进行字符串操作,可以不考虑数组末尾的'\0'问题。比如你把bird像int类型数组一样使用,而不进行strcmp(bird,xxx);之类的操作。
但是,如果你赋值时使用字符串整体值,或者bird将来要按照整个字符串来处理,比如printf("%s",bird);
或者strcpy(xxx,bird);
或者for(;bird[i]!='\0';i++)
之类,就要预留一个'\0'的元素位置。
B. vc 字符串常量存储和使用时的细节
试图访问“常量”的地址是没有意义的,编译器可以按照自己的逻辑去安排。你说的完全都有可能,但是换个编译器可能就全不可能
C. 系统在储存字符串常量时,为什么要在结尾添加一个结束标记
任何一个字符串,都要一个结束标记。
如果没结束标记,那么后面的那些没定义的量可能是乱码,但是乱码不是结束,系统会认为他是字符串的一部分,那么在输出或者调用的时候,可能会多输出东西甚至出错。
D. 字符串常量的长度为3在存储时为何占4个字节
C++中字符串是用char类型的一维数组实现的,字符串长度不等于数组长度,字符长度依赖结束符('\0')标识字符结尾,所以一个字符串必须包含结束符,因此存储时会比字符串本身多一个字节。因此一个100个元素的数组实际可存储字符为99个,即n-1.
E. c语言里面的常量是什么
C语言里面的常量是指不会变化的常数或编码,例如圆周率3.14就可以定义为一个常量。
“常量”的广义概念是“不变化的量”,例如:在计算机程序运行时,不会被程序修改的量;数学函数中的某一个量,例如每一个具体的圆的半径、直径数值;物理学中的靠近地面的重力加速度;真空中的光速数值;不同的微粒的各自的质量。
一层含义指它们的编码方法是不变的,但是严格来说“人为规定的某一种方法也可以因地制宜而人为改变,所以其本身数值大小‘不是‘常量’的内涵”。比如字符'A'无论在硬件、软件还是各种编程语言中,它的信息编码即为 “ 0x41”。
(5)存储字符串常量时扩展阅读:
C语言中,常量概念容易存在的错误解释:
在除了“C/C++”的一些高级程序语言中,“常量”可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者的差异。
但在 “C/C++语言中”,“常量”如果还用“运行过程中不变的量”来描述,就显得不太准确了,甚至是在具体使用时,这就是一个错误的概念。
在 “C/C++”中,定义“指针常量”时,根据“const ”的位置的不同,可以定义出几个不同的形式,虽然其看起来“符合常量的概念”,但是在实际运行中,其值或地址值是会发生变化的,所以本质还不是“常量概念”。
F. 什么是字符串常量和字符串变量啊
字符串常量是一对双引号括起来的字符序列。字符常量可以赋值给字符变量,如"char b='a';",但不能把一个字符串常量赋给一个字符变量,同时也不能对字符串常量赋值。
字符串变量是存放字符常量的变量,其取值是字符常量,即单个字符。字符变量的类型说明符是char。每个字符变量被分配一个字节的的内存空间,因此只能存放一个字符。并且字符值是以ASCⅡ码的形式存放在变量的内存单元之中的。
(6)存储字符串常量时扩展阅读
字符串常量的存储:
字符串中的字符依次存储在内存中一块连续的区域内,并且把空字符‘ ’自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占(n+1)个字节。可以输出字符串,例如:
printf("how do you do.");
字符串变量的说明:
1、字符变量在内存中占一个字节。
2、在内存中,是把字符对应的ASCII码值放到存储单元中。
3、字符型数据与整型数据之间可以通用。
G. c语言字符串常量
常量有整型常量、浮点型常量、字符型常量及字符串常量。 ‘
字符串常量定义是指定义符号常量,用一个标识符来代表一个常量,通过宏定义预处理指令来实现。常量的定义:
#define count 60
这就定义了一个常量 count 它的值是一个常量60 在整个程序中不变。主调函数中的参数是实际参数,被调函数中的参数是形式参数。
比如说:如下代码段
被调函数:
int max(int a,int b)
{if(a>b)
return a;
else return b;
}
主调函数:
main()
{
max(a,b);
}
在北调函数max(int a,int b)中a,b是形式参数在主函数中max(a,b)中的a,b是实际参数。
(7)存储字符串常量时扩展阅读
1、在C语言中没有专门的字符串变量,如果想将一个字符串存放在变量中以便保存,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。
2、在程序中,字符串常量会生成一个“指向字符的常量指针”。当一个字符串常量出现于一个表达式中时,表达式所使用的值就是这些字符所存储的地址,而不是这些字符本身。
3、可以把字符串常量赋值给一个“指向字符 的指针”,例如:char *a = "123" ; a = "abc";,后者指向这些字符所存储的地址。
H. 正确的C语言常量是什么
C语言的常量有整数常量,实型常量,字符常量,符号常量等。
1、整数常量
整数常量是指直接实用的整形常数,又称整形常数或者整数,例如,1,-9等。整数常量可以是长整形、短整型、符号整型和无符号整型。
a)八进制数
八进制整数必须以0开头,即以0作为八进制数的前缀。数字取值范围为0—7.八进制数常是无符号数
b)十进制数
十进制数是不需要在其面前加前缀的。十进制数中包含的数字0—9组成。
c)十六进制数
常量前面使用0x作为前缀,表示该常量是用十六进制表示。十六进制中所包含的数字由0—9以及字母A—F组成(十六进制数中的字母可以使用A—F大写形式,也可以使用a—f小写形式。)
整数数据都以二进制的形式存储在计算机中,其数值以补码的形式表示。一个正数的补码与其原码形式相同,一个负数的补码是将该数绝对值的二进制形式按位取反再加1.
2、实型常量
实型称浮点型,由整数和小数部分组成,其中用十进制的小数点隔开。表示实数的方式由科学计数和指数方式两种。
a)科学计数方式
科学计数方式就是使用十进制的小数方法进行描述实型
b)指数方式
若实数非常大或非常小,使用科学计数方式则不利于观察,此时可以使用指数方法显示实型变量。使用字母e或者E进行指数显示,如45e2表示4500,而45e-2表示的是0.45
在编写实型常量时,可以在常量的后面加上那个符号F或者L进行修饰。
F表示该常量是float单精度类型,L则表示该常量是为long
double长双精度类型。
如果不在后面加上后缀,那么默认的状态下,实行常量为double双精度类型。
3、
字符型变量
字符型常量可以分为字符常量和字符串常量
a)字符常量
字符常量分为一般字符常量和特殊字符常量。
使用单撇号括起一个字符的形式即字符常量。使用字符常量需要注意以下几点:
字符常量只能用单撇号括起来,
不能使用单引号或其他括号。
字符常量中只能包括一个字符,不能是字符串。
字符常量是区分大小写的。
单撇号代表定界符,不属于字符常量中旳一部分。
单撇号里面可以是数字、字母等C语言字符集中除’和\以外所有可现实的单个字符,但是数字被定义为字符之后则不能参与数值运算。
特殊字符常量就是转义字符。转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。
在使用注意字符时应注意:
转义字符只能使用小写字母,每个转义字符只能看成一个字符。
垂直制表符\v和换页符\f对屏幕没有任何影响,但会影响打印机执行响应操作。
在C语言程序中,使用不可打印字符时,通常用转义符表示。
如果反斜杠之后的字符和他不构成转移字符,则’\’不起转义作用,将被忽略。
b) 字符串常量
字符串常量是一对用双引号括起来的若干字符序列。字符串中字符的个数称为字符的长度,长度为0的字符串称为空串。
C语言中存储字符串常量时,系统会在字符串的末尾自动加一个’\0’作为字符串结束的标志。
4、
符号常量
在C语言中,通常将程序中的常量定义为一个标识符,这个常量就叫做符号常量。在使用符号常量之前必须先进行定义,大多数情况下,符号常量用大写英文字母表示。定义符号常量的一般形式:
#define
符号常量名
常量值
I. C语言,存储字符串常量
选择B
字符分别是
a b \25 8 g \n \0
注意其中的\25是转义字符ascii码值八进制为25的字符
J. 字符串常量在内存中存储是占的单元数怎么算
将所有字符的总数最后再加1,因为字符串最后会有个'