主题:主函数调用子函数的问题
TOP_HaHa
[专家分:0] 发布于 2012-04-09 20:13:00
void fun( int *p )
{
.....
}
void main()
{
int *a;
fun( a );
}
上面的应该写fun(a)还是fun(*a)啊,大侠们指教啊
回复列表 (共6个回复)
沙发
lisy [专家分:390] 发布于 2012-04-09 20:42:00
main函数中使用 fun(&a)调用子函数。
新浪微博:李思扬_pa
板凳
181504347@qq.com [专家分:30] 发布于 2012-04-10 15:31:00
fun(a),你定义的函数void fun( int *p )形参就是一个指针类型,int *a,a也是一个指针类型。可以直接使用。
3 楼
lisy [专家分:390] 发布于 2012-04-11 00:20:00
没有看到main()中的定义也有*
void fun( int *p )
{
}
void main()
{
int a;
fun( &a );
}
或者:
void fun( int *p )
{
}
void main()
{
int *a;
fun( a );
}
新浪微博:李思扬_pa
4 楼
TOP_HaHa [专家分:0] 发布于 2012-04-11 09:42:00
void fun( double *TI )
{
TI = (double *)malloc(2 * sizeof(double));
*(TI+0)=1;
*(TI+1)=2;
}
void main()
{
double *AC;
double AC;
fun(AC);
printf("%1f\n",*(AC+0));
printf("%1f\n",*(AC+1));
}
那我上面这段代码怎么总是提示“AC”:“double”与“double *”的间接寻址级别不同,谢谢大侠了
5 楼
lisy [专家分:390] 发布于 2012-04-12 05:54:00
#include <stdio.h>
#include <stdlib.h>
void fun( double *TI )
{
//TI = (double *)malloc(2 * sizeof(double));
*(TI+0)=1;
*(TI+1)=2;
}
void main()
{
double *AC;
AC = (double *)malloc(2 * sizeof(double));
//double AC;
fun(AC);
printf("%1f\n",*(AC+0));
printf("%1f\n",*(AC+1));
}
新浪微博:李思扬_pa
6 楼
ran5514 [专家分:50] 发布于 2012-04-13 19:06:00
的确是fun(a)调用的;
举几个例子(int m,n;)(int *q,*p;)
fun(int *a , int *b){},用fun(&a,&b);fun(a,b)
fun(&a, &b){},用fun(a,b);fun(*p,*q)
较乱,不好意思
我来回复