C语言中,关于指针的基础问题,望有高人指点

初学C语言,在学习指针时遇上点问题:
比如说:
int i1,i2,i3;
int *pi1=&i1,*pi2=&i2;//用整型变量的地址给基类型为整型的指针变量赋值
pi1=&i3; //给指针变量赋予基类型变量的地址
pi2=pi1;
我就是不明白
int *pi1=&i1,*pi2=&i2;//用整型变量的地址给基类型为整型的指针变量赋值
pi1=&i3; //给指针变量赋予基类型变量的地址
这两个的赋值区别,是不是都是将变量的地址赋值给指针变量呢?
如果是的话,那他们有什么区别呢,如果不是的话,那有是什么呢?
看不懂哦,详细求解,谢谢!
其实,就是想问下的是为什么pi1=&i3里面的pi1中和上面的*pi2=&i2不一样呢,就是pi1中的为什么没有“*”?这是什么原因?谢谢!

指针也是一种数据类型,所以在C中也必须先定义在使用。和其他的定义一样如整型(int),指针类型的也可以在定义时赋值,就是这样int *p=&i1,但是如果去掉类型说明int该语句不成立。p=&i1是赋值语句,使用前必须定义p为指针类型。int *p=&i1是声明语句,包含两层一定义p为整型指针,二将p赋值为&i1。你可以比较着int a=1000;和a=1000;这两个语句不要被*和&弄晕了!
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-18
int *p=

参考资料:

第2个回答  2011-01-18
int *pi1=&i1,*pi2=&i2;//用整型变量的地址给基类型为整型的指针变量赋值
pi1=&i3;
它们的作用是一样的,都是将变量的地址赋值给指针变量
int *pi1=&i1,这个语句有两个作用,1 定义pi1是整型指针,2把i1变量的地址给pi1
而pi1=&i3这个语句只有一个作用,把i3变量的地址给pi1,也就是前面要有pi1的定义声明
否则会出错。
第3个回答  2011-01-18
其实,就是想问下的是为什么pi1=&i3里面的pi1中和上面的*pi2=&i2不一样呢,就是pi1中的为什么没有“*”?这是什么原因?

pi1=&i3 之所以能这样赋值是因为之前有定义

*pi2=&i2 这样独立成句是不正确的 一般要int *pi2=&i2 意义是定义指针 并初始化赋值。
第4个回答  2011-01-18
指针定义的时候要:int * p;
赋值的话就直接 p = &i1;
如果是即定义又赋值: int *p = &i1;

分开就是:
int *p;
p = &i1;
第5个回答  2011-01-18
开始是定义为指针变量 定义为指针变量的符号为* 其实int *p1=&i1就等于int *p1;p1=&i1
在变量定义时需要指出变量类型;int *p1=&i1的*是定义用的指出变量类型;
其实初学是这样 用多了就行了 刚开始的时候分开写
以后慢慢就会了 C语言指针很多 这只是最简单的 呵呵
相似回答