![]() |
1
28
此行初始化
另一条线:
不初始化本地数组,它只是初始化本地指针。允许编译器将其设置为指向数组的指针,该数组 你不能换衣服 就像密码是
C之所以不使用强制转换就允许这样做,主要是为了让古老的代码继续编译。您应该假设源代码中字符串文字的类型是
|
![]() |
2
14
在第二个示例中:
指示者
你可以做一些事情:
以便
|
![]() |
3
4
在第二个代码中,您传递的是字符串文字的地址。试图修改字符串文字会给出未定义的行为。 |
![]() |
4
3
在第二种情况下(
|
![]() |
5
0
第一种情况创建一个(非常量)char数组,该数组足够大,可以容纳字符串,并用字符串的内容对其进行初始化。第二种情况是创建一个char指针,并将其初始化为指向字符串文字,字符串文字可能存储在只读内存中。 由于strtok想要修改您传递给它的参数所指向的内存,后一种情况会导致未定义的行为(您传递的指针指向(const)字符串文字),因此它不会导致崩溃。 |
![]() |
6
0
因为第二个声明一个指针(可以更改)为常量字符串… 所以取决于编译器/平台/操作系统/内存映射…“hello world”字符串将存储为常量(在嵌入式系统中,它可能存储在ROM中),尝试修改它将导致该错误。 |
![]() |
Toniq · javascript为php保存多维数组 1 年前 |
|
Jannis · Java中数组的怪异行为 1 年前 |
|
callum · 如何识别数组中与给定序列不匹配的元素? 1 年前 |
![]() |
tenfour · 如何使用数组元素的索引初始化数组元素 2 年前 |
![]() |
Guillaume · 使用操作从Python列表创建numpy数组 2 年前 |
![]() |
maxMas · Swift 5:为什么会出现索引超出范围错误? 2 年前 |