p是指针变量,*p=a和p=&a的区别

问题描述:

p是指针变量,*p=a和p=&a的区别
#include
void main()
{
int a,b;
int *pa,*pb;
a=10;b=20;
*pa=a;*pb=b;
printf("%d,%d\n",*pa,*pb);
printf("%x,%x\n",pa,pb);
printf("%x,%x\n",&a,&b);
}
结果输出为:
10,20
354,7d5
ffda,ffdc
为什么程序最后两行输出的结果不一样呢?按说应该都输出a和b的地址才对.
1个回答 分类:综合 2014-11-13

问题解答:

我来补答
1
*p=a; //表示将a的值赋给p所指单元.
p=&a; //表示将p指向a单元,即将a单元的地址赋给p.
2
int a,b;
int *pa,*pb;
a=10;b=20;
*pa=a;*pb=b; //这两个语句有问题.pa,pb是野指针,没有指向任何单元.
printf("%d,%d\n",*pa,*pb);
printf("%x,%x\n",pa,pb); //pa,pb的野指针,其值不确定.
printf("%x,%x\n",&a,&b); //输出a,b的地址.
 
 
展开全文阅读
剩余:2000