|
|
5鱼币
#include <stdio.h>
void main()
{
int a,b;
int *pointer_1,*pointer_2;
a=100;
b=10;
pointer_1=&a; //如果改写成 *pointer_1=a; 就出错。。。为什么。。
pointer_2=&b; //如果改写成 *pointer_2=b; 就出错。。。为什么。。
printf("%d,%d\n",a,b);
printf("%d,%d\n",*pointer_1,*pointer_2);
} //第一个程序
------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
void swap(int *p1,int *p2);
void main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf("%d %d",&a,&b);
pointer_1=&a;
pointer_2=&b;
if (a<b)
{
swap(pointer_1,pointer_2);
}
printf("\n%d>%d\n",a,b);
}
void swap(int *p1,int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp; // 这里怎么*p2=temp; 就不会出错呢?
}
错误提示是未被初始化。。百度查不到相关资料 
|
最佳答案
查看完整内容
int *pointer_1;
未初始化的局部变量pointer_1内部存放着一个随机值。也就是说指针pointer_1指向一个随机的内存区域
接着*pointer_1=a;向随机内存写数据,这个行为被windows操作系统视为违规,所以报错
int *pointer_1;
未初始化的局部变量pointer_1内部存放着一个随机值。
pointer_1 = &a;现在pointor指向a,不是指向随机内存,以后就可以执行如:*pointor = 7;等操作了
|