初学C语言,指针的困惑
在看谭浩强的C程序设计,说道一个函数进行数据交换,应该是这样
swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
还是能读懂
可是下面这代码就很困惑了
swap(int *p1,int *p2)
{
int *temp;
*temp=*p1; /*此语句有问题*/
*p1=*p2;
*p2=temp;
}
困惑的就是:
int *temp;
*temp = *p1; 自己理解的是把p1指针对应的数据赋给tmep指针对应的值,这样应该是没什么问题啊
可是通过VC编译执行时却出错,很是不理解
或者说
int *temp;
然后没给这个temp一个具体的地址指向,然后这时候通过指针操作符“*”即 *temp时会出错?
希望大侠们能够比较具体细致的说下 *temp 这时候是个什么样子的状态,谢谢!