指针变量的赋值问题
请教大家一个问题,在谭浩强《C语言》第四版关于指针的讲解中(书中第224页)关于指针变量的赋值,在小字部分指出,形如* pointer_1=100是不合法的,不能将整常数赋给指针变量,但是在同页下文中又提到,赋值语句* p=1是可以的,表示将整数1赋给p当前所指向的变量,那么这不是矛盾了吗?还是说,后一种情况下,必须先指定指针变量p所指向的变量,如先定义p=&a,然后才能进行* p=1这样的赋值呢?请大家指点,谢谢!
#include <stdio.h> int main() { int a, *pa; pa = &a; short b, *pb; pb = &b; long c, *pc; pc = &c; float d, *pd; pd = &d; double e, *pe; pe = &e; printf("%d %d %d %d %d\n", sizeof(pa), sizeof(pb), sizeof(pc), sizeof(pd), sizeof(pe)); return 0; }