我正在通过了解一点 Python 来进行自学“Learn C the hard way”。我已经阅读了几个教程,但我无法理解指针和赋值是如何工作的。我知道如果您取消引用指针,您可以直接给它一个值,如下所示:
int *anint = 42;
但是具体引用一个已经创建的变量的内存位置呢?具体来说,我试过:
char *pointer_to_strlit;
char *strlit = "some stuff";
pointer_to_strlit = &strlit;
为什么在我这样做之后会导致段错误:
printf("I print strlit: %s\nI print it again by pointing to it: %s\nI print where the pointer is pointing: %p\n", strlit, *pointer_to_strlit, pointer_to_strlit);
C 中的类型似乎很难说明它们的行为方式以及如何使用指针来引用特定类型。是否有明确的指南专门概述了指向每种不同数据类型(char
、*char
、*char[]
、int
、struct
、void
、null
、 函数等)的语法?甚至可以帮助我理解规则集的步骤列表也会很有用。