【发布时间】:2019-01-01 07:29:37
【问题描述】:
在下面的语句中:
char *myarray[] = {"Amir"};
对于指针myarray[],分配了多少字节的内存?
【问题讨论】:
-
myarray[]不是指针。它实际上什么都不是,因为myarray[]不是左值,它只是一个声明符语法。myarray是一个数组,myarray[0]是一个指针。myarray[0]指向字符串文字的第一个元素。您使用sizeof thing在您的 目标系统上获得thing的大小 - 它说明了什么? -
请记住,在现代 C++ 中将字符串文字 (
const char []) 分配给非const指针是非法的,编译器错误。 -
它是有效的 C,因此我相信 c++ 标签是错误的......但谁知道呢。另外,
Char是什么? -
@AnttiHaapala 我认为 OP 的意思是说
char,而不是 Char -
那么我想这是 OP 想要澄清的另一件事。