<分区>
我是 C 的新手,目前我正在尝试了解指针的工作原理。
这是一个让我感到困惑的问题:
据我所知,在为指针赋值之前,你应该为该指针分配一定的内存(如果我错了,请纠正我:)),如下代码:
int main(void) {
int i;
int * ptr = (int *)malloc(sizeof(int));
i = 2;
*ptr = 5;
printfn("%d",*ptr);
free(ptr);
}
然而,在 C 中声明字符串时,就像:
char *p = "Hello world";
无需分配内存。
原因是什么,它是如何工作的?如果我遗漏了什么,请提醒我。