c语言中的变量生存期的问题 急求 求帮忙阿
发布网友
发布时间:2023-11-01 06:24
我来回答
共1个回答
热心网友
时间:2024-12-15 04:08
#include<stdio.h>
void f(int *p,int *q) //函数参数为指针
{p=p+1;*q=*q+1;} //p=p+1,这个时候p指向的位置改变了,如果此时读取p指向的值可能会发生错误,也可能会读到n的值,*q=*q+1通过操作地址改变了n的值
main()
{int m=1,n=2,*r=&m;
f(r,&n); printf("%d,%d",m,n);
getch();
}
#include <stdio.h>
void fun(int *a,int *b)
{ int *c;
c=a;a=b;b=c; //这个没有什么意义,只是改变了a,b,c指向的地址,函数结束后,a,b,c都会释放.如果改成c=a; *a=*b; *b=*c你再看看效果
}
main()
{ int x=3,y=5,*p=&x,*q=&y;
fun(p,q); printf("%d,%d,",*p,*q);
fun(&x,&y);printf("%d,%d\n",*p,*q);
}