sizeof
工作)。起初我认为这样做是为了防止我返回在栈上定义的数组,但是没有任何东西可以阻止我返回指向我的栈上某些内容的指针(gcc会警告我,但代码编译)。我还可以返回静态存储的字符数组。顺便说一下,在Linux上,它存储在.rodata
中,const数组也存储在那里(使用objdump
检查),所以我可以返回数组(将其转换为指针)并且它可以工作,但据我所知,这只是特定于实现的(其他操作系统/编译器可能将const存储在堆栈上)。我有两个想法如何实现返回数组:只需将其作为值复制(与结构体相同)。我甚至可以将数组包装到结构中返回!),并自动创建指向它的指针或允许用户返回const数组,并创建这样的约定,即此类数组应具有静态存储期(与字符串相同)。这两种想法都很简单! 那么,我的问题是,为什么K&R没有实现类似的功能?