-4
我写了一个类中的函数返回一个指针:为什么数组不能接受指针作为初始值设定项?
DATA_TYPE* foo(){
...
return DATA
}
,在我主我试着写
int[10] = {Class.foo()};
,但没有工作,但后来为什么
int[10] = {[12,...,123]};
有用吗?
我写了一个类中的函数返回一个指针:为什么数组不能接受指针作为初始值设定项?
DATA_TYPE* foo(){
...
return DATA
}
,在我主我试着写
int[10] = {Class.foo()};
,但没有工作,但后来为什么
int[10] = {[12,...,123]};
有用吗?
它为什么要工作?指针不是数组;这两种类型 是无关的。数组是一个聚合,并且需要聚合 初始化。指针是标量。
注意,使用集合初始化(或其等价 中的C++ 11均匀初始化语法)时,则提供 初始化为单独的元件,不整个 阵列。 (使用字符串初始化char[]
有一个特别的例外。)所以,你试图用指针初始化一个 int
,这需要一个明确的 reinterpret_cast
。
这不是我知道的任何C++。 – andre
如果我给你一个指针,你能告诉我它指向的数组的大小吗?事实上,你能否告诉它是否是一个指向数组的指针? –
如果您从第一个示例中删除“{}”,会发生什么情况? – Antoniossss