C语言问题,高手帮我解决下啊

来源:百度知道 编辑:UC知道 时间:2024/07/05 07:35:50
这是原程序:
#include<stdio.h>
void main()
{
int a=10,b=20
int *p1=&a,*p2=&b,*p;
p=p1;
p1=p2;
p2=p;
printf("a=%d,b=%d,*p1=%d,*p2=%d\n",a,b,*p1,*p2);
}
我把它改成:
#include<stdio.h>
void main()
{
int a=10,b=20
int *p1=&a,*p2=&b,*p;
*p=*p1;
*p1=*p2;
*p2=*p;
printf("a=%d,b=%d,*p1=%d,*p2=%d\n",a,b,*p1,*p2);
}
怎么就运行出错了呢?假设在一个程序里定义了一个指针变量*x,那x代表的是什么呢?

因为你的p指针没有指向。因为你*p=*p1相当于对*p赋值,可是p没有指向任何地方,你叫*p1的值放到哪里呢?所以错误了。 你得给p指针个具体指向的地方好存放你的*p1的值

对于没有指向的指针是不能赋值的 会出大问题的

int a=10,b=20 少了一个";"号
该数据源的指针地址。