C指针问题

怎么定义两个int指针,然后使两个指针地址相同,向其中一个指针赋值,输出两个指针地址,输出指针指向的内容。
是不是
main()
{
int *a,*b;
a=b;
*a=3,*b=4;
printf("a is %d b is %d",*a,*b);
}

不是,你定义的指针是野指针,定义后没有指向变量,不能够随意使用,像上面你那样的使用方式不符合规定,容易造成内存错误
见代码
int main(void)
{
int a,b;
int *pa,*pb;
a=3;
b=4;
pa=&a;
pb=&b;//使两个指针都指向指定变量
pa=pb;//使两个指针指向变量相同,既地址相同,用pb给pa赋值
printf("a is %d , b is %d",*pa,*pb);//输出指针指向的变量,结果都是4
printf("pa is %d,pb is %d",pa,pb);//输出两个指针地址,都是b的内存地址
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-10-26
#include <stdio.h>

int main ()
{
int *a, *b, c = 4;

a = b;

printf ("%p %p\n", a, b);

a = &c;

printf ("%p %p\n", a, b);
}本回答被提问者采纳
第2个回答  2009-11-05
...你的程序和你的题目有点出入吧...
int *a,*b;
a=b;
*a=123;
printf("a is %d b is %d",*a,*b);
好像还要输出地址么...把*a改成a应该就可以了...有问题再联系...
第3个回答  2009-10-26
定义指针首先要赋初值的,不然对系统有危险的
所以 本题你应该首先为指针赋初值