经典指针程序,互换两个数字
# include
void swap(int * p, int * q)
{
int t;
if(*p
{
t = *p;
*p = *q;
*q = t;
}
return;
}
int main(void)
{
int i = 5;
int j = 7;
swap(&i, &j);
printf("i = %d\nj = %d\n",i ,j);
return 0;
}
常见的小错误
# include
int main(void)
{
int i = 3;
int * p;
int * q;
p = &i;
// *q = p //error 语法编译出错
// *q = *p //error
p = q; //q是垃圾值,q赋给p,p也编程垃圾值
printf("%d \n",*q);
/*
q的空间是属于本程序的,所以本程序可以读写q的内容,
但是如果q内部是垃圾值,则本程序不能读写*q的内容
因此此时*q所代表的内存单元的控制权限并没有分配给本程序
所以本程序会出现运行错误。
*/
return 0;
}