我不是 C 程序员所以请理解 ;)
C 语言具有指针及其所有优点。但是原始类型声明是如何工作的?
例如我可以这样做:
char x = 'a';
那里没有指针,但值必须存储在内存中的某个地方,对吗?我可以把上面的陈述翻译成:
char* _x = malloc(sizeof(char));
char x = *_x;
最佳答案
不,你不能。
malloc(sizeof(char));
会在堆中分配内存,你负责删除它。这样做的好处之一是,分配内存中的数据不会在其作用域结束时“消亡”,它只会在您销毁它时消亡。
char c = 'a'
将存储在堆栈中,并在其作用域结束时自动释放。
编辑:关于您的评论,一般来说,局部变量通常会存储在堆栈中(这当然是自动的)。 malloc、calloc
允许您“请求”堆中的空间,并按您的意愿使用它。如果你想了解更多信息,你可以看here ,如@Jabberwocky所述
关于c - 原始类型声明在 C 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52165690/