大家好!
问题一:方法中有一行:
const char *c = "123";
这项任务如何运作?用'1','2','3'在栈上创建一个数组,然后指向数组的指针被复制到'c'?对了,你是不是错过了什么?
问题2:为什么在下面的例子中最后一个元素用零填充:
int b[5] = {7,-4,5};
如果数组声明为局部\全局,则元素 [3] 和 [4] 包含零。为什么?毕竟,局部变量不应该自动初始化为零。
大家好!
问题一:方法中有一行:
const char *c = "123";
这项任务如何运作?用'1','2','3'在栈上创建一个数组,然后指向数组的指针被复制到'c'?对了,你是不是错过了什么?
问题2:为什么在下面的例子中最后一个元素用零填充:
int b[5] = {7,-4,5};
如果数组声明为局部\全局,则元素 [3] 和 [4] 包含零。为什么?毕竟,局部变量不应该自动初始化为零。
在数据段中创建一个
char包含元素的数组,'1','2','3',0并将指向它的指针分配给变量c。此外,该段很可能是只读的,因此无法更改其中的数据。如果至少有一些初始化,那么缺失的元素也会被初始化——默认值为 0。
例如,在 C 中,它是这样的 -
将有两个数组,99 个零和第 101 个元素 -
-1:)