加装倒车影像会自燃:请教C语言高手详细解答一下^_^

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 14:55:33
如果一段程序为:
main()
{int k=4,m=6,*p1=&k,*p2=&m;
不明白这个*p1=&k,*p2=&m是什么意思啊

这是指针的定义和初始化。
int *p1;表示定义p1是一个指针,它指向一个int型的地址。
int *p1 = &k;是对p1的初始化,
符号&表示取地址的意思,
即上面的int *p1 = &k;意思是:取k的地址赋值给指针p1.

同样p2和p1一样。

main()
{int k=4,m=6,*p1=&k,*p2=&m;
也就是指针变量p1指向变量k的内存单元,指针变量p2指向变量m的内存单元
*p1=&k *p2=&m,这两个赋值表达式是指针变量p1,p2的初始化.

看看我下面的一个例子,你就会明白了.

int *p=&a;即声明一个整型指针变量p,并给指针变量p赋初值为变量a的地址。即p中存放的是变量a的地址。

如果,*p=&a;这样话,是把变量a 的地址存到指针变量p所指向的内存单元中.
例如:
main()
{
int *p,**k,a,s,t;
a=5;
p=&a;/*指针变量p存放变量a的地址*/
s=*p;
k=&p;/*指针量变量k存放指针变量p的地址,指针变量k是指向指针的指针*/
t=**k;

printf("a=%d,s=%d,t=%d",a,s,t);
}
改为下面的程序结果一样都是a=5,s=5,t=5

main()
{
int a,s,t, *p=&a,**k=&p;
a=5;
s=*p;
t=**k;

printf("a=%d,s=%d,t=%d",a,s,t);
}

*p1=&k 是定义指针变量并赋初值,&是取地址符,就是把K的地址送到指针变量p1中,同样,后一句把m的地址送到p2中

int *p1;
是声明p1是指向整型的指针
&k是整型变量k的地址

所以
int *p1=&k;
是声明指针p1并将其初始化为&k

*p1=&k 是定义指针变量并赋初值

*p1是定义一个整型指针变量,然后给它赋值,是它指向变量k的地址,&k是取变量k的地址。*p2同理
建议你看一下c语言的指针。这只是指针的初级入门介绍中的代码。
一两句话也说不清指针。