有关指针的简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 04:21:08
int d=5;
int *e;
e=&d;
printf("*e is %d\n",*e);

int *e1=5;
printf("e1 is %d\n",e1);//与前面的e相比较,为什么e1前加*会报错

int d=5;
int *e;
e=&d // 表示把d的地址专递给e
printf("*e is %d\n",*e); //输出的时候是把指针所指向的地址中的值打印出来
指针后面要跟地址,不能直接赋值。 而你直接int *e1=5,难道你想把地址5赋给指针e1

C和C++中不允许这样写:int *e1=5;
int *p=地址,而不允许自己随意写一个数据。
比如:企图int *p= 7A90H ,在内存中尽管真的有7A90H这个地址,也不允许你手工去写。必须用&符号,让系统自己去取地址。

因为指针e1没有初始化,指向不可用的内存,往不可用的内存赋值,所以出错

int *e1=5;
这个是指针的初始化,里面写的是地址!