-
这些是您绝对应该了解的基本概念:
char a[12];定义了一个字符数组,数组名称是 a,在本例中,a 是指针,它是一个常量类型,其值在数组的整个生命周期内是不可变的。
a = "null";在本例中,a 是指向数组第一个地址的常量指针,其值在数组的生存期内是不可变的。 当然,现在不可能为他分配字符串。
a = "null";A本身是一个常量指针,指向数组的第一个地址,去引号,得到一个词赋值,这时候就把一个字符串常量的第一个地址赋给他,这样就比较无厘头了,咱们就不说了。
char *a;定义了字符指针。
a = "null";为他分配一个字符串常量也给出了常量"null"第一个地址分配给 a,这是正确的。
a = "null";a 是一个字符指针,去引号后,结果一定是单个字符值,一个字符常量的第一个地址就分配给这个字符,这也是无意义的。
仔细想想。
enjoy!
-
char a[12];
a="null";错误。 因为 a 是第一个地址,而不是指针,所以在创建 a 时确定它不能更改。
a="null";错误 因为 *a 是 a[0],所以它存储一个字符,如 'n'
char *a;
a="null";没错。 将字符串“null”的第一个地址分配给指针 a,即指向“null”。
a="null";错误。 一个。我甚至没有地址的内容,我怎么能给他的地址指向的内容赋值?此外,它指向的内容不能以这种方式分配给字符串。
-
我说,伙计,你怎么能这样定义。
数组在定义后会分配内存,如果它们没有初始化,它们就是 null,那么为什么要将它们清空呢???
您正在定义一个数组,如何使用 a 作为指针??? 你犯了多么大的错误。
即使你想分配一个指针值,例如:int *pf pf=null,也没关系。
指针 pf 变成空指针,即 pf 指向一个空地址!
-
char a[12] 定义的 a 是 char* 类型的常量。
char* a 由 char* 定义为变量。
A 的类型为 char。
-
C 允许您将数组初始化为字符串。 例如:
staticcharc=可以写成:
staticcharc=或删除 {} 并写成:
staticcharc=cprogram";
为所有元素分配初始值时,也可以省略长度描述。 例如:staticcharc = C 数组的长度自动设置为 9。
-
C 允许您将数组初始化为字符串。 例如:
static char c=;它可以写成:
static char c=;或者删除 {} 并将其写成:
static char c="c program";
为所有元素分配初始值时,也可以省略长度描述。 例如:static char c=; 在这种情况下,c 数组的长度会自动设置为 9。
-
1.直接逐个初始化。
字符数组:初始化字符数组的最简单方法是一次为数组中的每个元素分配一个字符。
char str[10]=;
注意:如果大括号中提供的字符数大于数组的长度,则将被视为语法错误; 如果它小于数组的长度,则只有这些字符数组的第一个元素才会自动设置为空字符(即 .'\0' )。
2. 使用字符串常量初始化字符数组:
在 C 中,字符串被视为字符数组。 因此,可以使用字符串来初始化字符数组。
大括号也可以省略。
但是,上述字符数组的整体赋值只能在初始化字符数组时使用,不能用于字符数组的赋值,并且字符数组的赋值只能用于逐个为其元素赋值,并且下面的赋值方法是错误的。
-
初始复制字符数组:
char str[10]="hello";
char str[10]=;
char str[10]=;
char str[10]=;
char str[10]="hello, world.";
char str="hello, world.";
在第一种情况下,初始 BAI 数据小于数组长度 du
和前面两个初始化的例子一样,这两个例子的效果是一样的,dao 的前五个字符是 hello,其余的都是用的'\0'填充。
第三行和第四行仅指定第一个字符,其余部分使用'\0'填充。 第四个示例将整个数组初始化为'\0'
在第二种情况下,初始化数据等于或超过数据长度。
在这种情况下,多余的部分将被丢弃,因此最多五个示例的最后一个字符是'r'.
在这种情况下,使用某些字符串函数时要小心,因为数组不包含它们'\0',这可能导致不可预测的结果。
第三种情况:未指定数组长度。
在这种情况下,数组部分不包含显式指定的'\0',将在编译时自动添加一个'\0';
数组不包含显式'\0'sizeof=strlen+1
-
a.在函数主体中定义的内置数组,其元素未初始化。
b.在函数体外部定义的内置数组,其元素初始化为零。
c.对于类类型,无论数组在何处定义,都会调用类的默认构造函数进行初始化,如果类没有默认构造函数,则需要显式初始化。
int a[5]=; //a=
string str[5]=; //str=;
char cal = ; //size=3char cal = ; //size=4char cal = c++;//size=4char cal[3] = c++;errorNote:不能使用数组直接初始化另一个数组,也不能像向量那样直接赋值。
char a[3] = ;
char b[3];
a=b; //error;
char a[3] = ;
char b(a); //error
-
一般对数。
可以使用以下方法实现复合物的初始化:
1)在丁。bai sense 数组,初始 du 值被分配给数组元素。 如:
static int a[10]={0,zhi1,2,3,4,5,6,7,8,9}dao;
经过上述定义和初始化后,一个 0 = 0,一个 1 = 1 ,...,a[9]=9。
2) 在初始化期间,您只能将初始值分配给部分元素。例如:
static int a[10]={0,1,2,3,4};
定义的数组有 10 个元素,但只有前 5 个元素被分配初始值,最后 5 个元素的初始值为 0。
3)如果要使数组的所有元素都具有0个值,可以使用以下方法:
static int a[10]={0,0,0,0,0,0,0,0,0,0};
不能使用:static int a 10 ={0*10};
如果不为静态数组分配初始值,系统将自动将值 0 分配给您定义的数组的所有元素。
4) 将初始值分配给所有数组元素时,可以不指定数组的长度。
硬盘驱动器。 建议你选择将驱动解压到sp60284后,右边包含旧的无聊键,将sp60284文件夹拷贝到U盘上,然后连接接口,然后在安装win8系统的时候,当它出现安装位置时,选择加载驱动。 然后浏览指定的通话弯曲驱动器,看看安装是否解决了问题。 >>>More
首先,我会明确地告诉你,选项 c 是正确的,选项 A strcpy 是一个字符串复制函数,它可以将字符串 “China” 复制到字符数组 str2 中并覆盖 str1 中的 “beijing”,选项 c strcat 是一个字符串连接函数,可以将 “China” 连接到“beijng”的后面。 因此,C. >>>More