|
|
1
28
此行初始化
另一条线:
不初始化本地数组,它只是初始化本地指针。允许编译器将其设置为指向数组的指针,该数组 你不能换衣服 就像密码是
C之所以不使用强制转换就允许这样做,主要是为了让古老的代码继续编译。您应该假设源代码中字符串文字的类型是
|
|
|
2
14
在第二个示例中:
指示者
你可以做一些事情:
以便
|
|
|
3
4
在第二个代码中,您传递的是字符串文字的地址。试图修改字符串文字会给出未定义的行为。 |
|
|
4
3
在第二种情况下(
|
|
|
5
0
第一种情况创建一个(非常量)char数组,该数组足够大,可以容纳字符串,并用字符串的内容对其进行初始化。第二种情况是创建一个char指针,并将其初始化为指向字符串文字,字符串文字可能存储在只读内存中。 由于strtok想要修改您传递给它的参数所指向的内存,后一种情况会导致未定义的行为(您传递的指针指向(const)字符串文字),因此它不会导致崩溃。 |
|
|
6
0
因为第二个声明一个指针(可以更改)为常量字符串… 所以取决于编译器/平台/操作系统/内存映射…“hello world”字符串将存储为常量(在嵌入式系统中,它可能存储在ROM中),尝试修改它将导致该错误。 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |
|
|
Geremia · 2D NumPy数组+1D数组? 1 年前 |
|
|
MARTIN · 交换第一个和最后一个单词,反转所有中间的字符 1 年前 |
|
|
Paul Williams · 迭代数组时输出有问题 1 年前 |