考虑这个函数:
void useless() {
char data[] = "aaa";
}
根据我在这里学到的知识,"aaa"
字面意思一直持续到程序结束。但是,data[]
(由文字初始化)是本地的,所以它只存在于函数的末尾。
内存被复制,所以程序需要 4B 用于文字,4B 用于指向data
和sizeof(size_t)
字节的指针data
和sizeof(size_t)
文字的指针 - 这是真的吗?
如果文字具有静态存储持续时间,则第二次调用不会为本地文字分配新内存 - 这是真的吗?