我写了一个测试程序,这些指令:ç指针引用
char *p;
然后
p="gibberish";
去然后再打印数p作为如下
printf("%s\n", p);
,我得到了 “胡言乱语”由于p地址没有初始化,我感到惊讶;运行代码时我期待错误,但我没有...请解释任何问题?
此外,当使用带指针的结构作为其字段时,例如
struct dummy
{
int *m;
....
}
我怎样才能取消引用一个虚拟变量dv
m
?我试过dv.m
,它确实工作,虽然我期待dv.(*m)
;请任何解释?
这应该是两个问题,其中每个问题都会成为问题,因为C上的任何教科书都会回答它们。 –
要访问结构中的指针,可以使用'* dv.m'或'dv.m [0]'或类似的东西; 'dv.m'就是指针。在'.'或' - >'之后,你总是有一个成员名字(一个简单的标识符,尽管如果编码器足够反常并且不被代码审查员控制,它可以用括号括起来)。 –
“,我得到了”乱码“,让我感到吃惊,因为p地址没有初始化” - 呵呵......你觉得'p =“乱码”;'是吗? – 2013-12-08 08:22:18