黑马程序员技术交流社区
标题: 经典C语言 指针问题,为什么不能传入两个指针进函数? [打印本页]
作者: Micro 时间: 2015-2-15 13:55
标题: 经典C语言 指针问题,为什么不能传入两个指针进函数?
//// 定义一个函数 ,可以用来 两个数的和同时,并计算是两个数的差;
//#include<stdio.h>
//int sumAndCha(int a,int b, int *cha);
//int main(){
// int *cha;
// int sum=sumAndCha(12,14,cha);
// printf("sum=%d,cha=%d\n",sum, *cha);
// return 0;
//}
//
//int sumAndCha(int a,int b, int *cha){
// int sum =0;
// sum=a+b;
// *cha= a-b;
// return sum;
//}
//以上的代码是正确的。
为什么下面的就会出错?
#include<stdio.h>
int sumAndCha(int a,int b, int *cha,int *mul);
int main(){
int *mul;
int *cha;
int sum=sumAndCha(12,14,cha,mul);
printf("sum=%d,cha=%d\n,mul=%d",sum, *cha,*mul);
return 0;
}
int sumAndCha(int a,int b, int *cha,int *mul){
int sum =0;
sum=a+b;
*mul=a*b;
*cha= a-b;
return sum;
}
作者: 蜡笔3285 时间: 2015-2-15 13:55
- #include<stdio.h>
- int sumAndCha(int a,int b, int *cha,int *mul);
- int main(){
- int a; // 指针必须明确找到他的对应地址
- int b;// 指针必须明确找到他的对应地址
- int *mul=&a;
- int *cha=&b;
- int sum=sumAndCha(12,14,cha,mul);
- printf("sum=%d,cha=%d\n,mul=%d",sum, *cha,*mul);
- return 0;
- }
- int sumAndCha(int a,int b, int *cha,int *mul){
- int sum =0;
- sum=a+b;
- *mul=a*b;
- *cha= a-b;
- return sum;
- }
复制代码
以后在用的时候,尽量不要用“不知所指”的地址,这样报错是很正常的。编译器会怎么去设置,这个我们无法确定。
作者: 小白一号 时间: 2015-3-17 15:59
定义了两个野指针。没让指针指向变量。
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |