C语言提高-第7讲: 返回指针的函数(回顾“野指针”)
2017-10-12 09:30
246 查看
“野指针”的三种形式:
1)直接将一个整形数赋值给指针指向的整形值 #include<stdio.h>
int main(){
int a,b;
int *p1,*p2;
*p1=10;
*p2=100;
printf("%d %d\n",a,b);
printf("%d %d\n",*p1,*p2);
return 0;
}
2)直接将地址值赋值给指针
#include<stdio.h>
int main(){
int a,b;
int *p1,*p2;
p1=1x100000;
p2=0x100004;
printf("%d %d\n",a,b);
printf("%d %d\n",*p1,*p2);
return 0;
}
3)返回值是已经失效的地址
#include<stdio.h>
int *max(int *x,int *y){
int t;
if(*x>*y)
t=*x;
else
t=*y;
return &t;
}
int main(){
int a,b,*p;
scanf("%d %d",&a,&b);
p=max(&a,&b);
printf("max=%d\n",*p);
return 0;
}
结果可能出现正确,但在其他程序中这样的写法可能会出现错误!
对比返回值是指针的函数:
#include<stdio.h>
int *max(int *x,int *y){
int *t;
if(*x>*y)
t=x;
else
t=y;
return t;
}
int main(){
int a,b,*p;
scanf("%d %d",&a,&b);
p=max(&a,&b);
printf("max=%d\n",*p);
return 0;
}
1)直接将一个整形数赋值给指针指向的整形值 #include<stdio.h>
int main(){
int a,b;
int *p1,*p2;
*p1=10;
*p2=100;
printf("%d %d\n",a,b);
printf("%d %d\n",*p1,*p2);
return 0;
}
2)直接将地址值赋值给指针
#include<stdio.h>
int main(){
int a,b;
int *p1,*p2;
p1=1x100000;
p2=0x100004;
printf("%d %d\n",a,b);
printf("%d %d\n",*p1,*p2);
return 0;
}
3)返回值是已经失效的地址
#include<stdio.h>
int *max(int *x,int *y){
int t;
if(*x>*y)
t=*x;
else
t=*y;
return &t;
}
int main(){
int a,b,*p;
scanf("%d %d",&a,&b);
p=max(&a,&b);
printf("max=%d\n",*p);
return 0;
}
结果可能出现正确,但在其他程序中这样的写法可能会出现错误!
对比返回值是指针的函数:
#include<stdio.h>
int *max(int *x,int *y){
int *t;
if(*x>*y)
t=x;
else
t=y;
return t;
}
int main(){
int a,b,*p;
scanf("%d %d",&a,&b);
p=max(&a,&b);
printf("max=%d\n",*p);
return 0;
}
相关文章推荐
- C语言及程序设计提高例程-7 返回指针的函数
- 第4周 C语言及程序设计提高例程-7 返回指针的函数
- c语言中函数返回局部变量的指针(一些容易犯错的地方)
- c语言指向函数的指针和返回指针的函数
- C语言及程序设计提高例程-25 指针作函数参数
- C语言提高-第23/24/25讲: 指针的运算/数组名作为函数参数/指针作函数参数(一维数组Vs指针)
- C语言-返回指针的函数与指向函数的指针
- 关于c语言用双重指针在无需返回的情况下于函数中创建链表的一点小小发现
- 【C语言提高37】结构体元素做函数参数与结构指针做函数参数
- C语言 函数返回数组和指针区别
- 【C语言】14-返回指针的函数与指向函数的指针
- 深入理解C语言中的指向函数的指针和返回指针的函数!
- 【C语言】返回指针的函数与指向函数的指针
- 第7周 C语言及程序设计提高例程-25 指针作函数参数
- 程序员之---C语言细节22(函数返回指针注意事项<悬空指针>、查看进程能够分配的内存大小)
- 我也要学C语言-第十六章:返回指针值的函数与指向函数的指针以及逻辑与算法分离
- C语言 const 指针使用技巧之——返回指针的函数
- C语言:返回指针的函数,函数声明、定义和调用,嵌套调用
- C语言 通过指针从函数返回一个数组
- C语言提高-第24/25讲: 数组名【指针】作为函数参数(成绩处理函数版)