c语言中函数名前加*与不加*有什么区别

如题所述

可以说加不加int是没有区别的。在ansi
c的标准中,main的标准返回值是整型,如果你什么都没有加,编译系统会自动加上int类型的。这时如果你使用gcc的话(vc是没有的)会有一个警告。
void是无类型,表示没有返回值,你的主函数如果不需要返回的话,最好加上它。
最后,建议你的主函数显式的使用int类型,并return
0;这是一个好习惯,开始的时候没什么用,时间长了才能看出来。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-15
加*是返回指针
例如:
int add();//add()函数返回的是一个int类型的值
int* add();//add()函数返回的是一个int类型的指针本回答被提问者采纳
第2个回答  2010-06-18
加*的表示函数指针,可以指向一个函数的地址,然后再调用函数。
书上都有,你可以去找找
第3个回答  2010-06-18
函数原型声明和定义中, 函数名前加 * 的表示返回值是指针。
例如标准库函数gets():
char *gets ( char *str );
从键盘读入一行字符串,如果读入成功,返回值与str 里 的 字符串相同。

--------------
int (*p)(); 这种声明是“定义 p 是一个指向函数的指针变量,此函数带回整型的返回值。”例如:
int max(int,int); //函数原型声明
int min(int,int); //函数原型声明
int (*p)();
int a,b,c;
p=max; // 将函数 max 的入口地址赋给指针变量p
scanf("%d,%d",&a,&b);
c=(*p)(a,b); // 等于 调用 c=max(a,b);
printf("a=%d,b=%d,max=%d",a,b,c);
p=min; // 将函数 min 的入口地址赋给指针变量p
c=(*p)(a,b); // 等于 调用 c=min(a,b);
printf("a=%d,b=%d,min=%d",a,b,c);本回答被网友采纳
相似回答