什么是“c语言调用函数,必须在一条独立语句中完成”??
创新互联公司是一家专业提供虎丘企业网站建设,专注与做网站、网站设计、H5高端网站建设、小程序制作等业务。10年已为虎丘众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
例如
int s()
{
return 5;
}
printf("%d", s());那么输出的而结果就会是5了……这个能解释么……
至于第二个问题
main函数的原型里边是带有三个参数的
如果正规完整来写,应该是
int main(int argc, char *argv, char *engv)
{
……
exit(……);//或者return……
}
如果你把main()当做一个普通函数来看待就好了,具有返回类型,返回值以及参数,只不过这个函数比较特别,因为调用它的是另外一个的程序的main()函数,因此调用时候必须指明它的程序名和参数(就像在main()中调用一个普通的函数,调用时候就一定要写出这个函数的名称和参数,只不过调用的机制不一样而已,使用的方式还是很像的)
其中argc是传递过来的参数个数,argv是指向这个参数列表的指针,engv是环境变量
如果你学习了linux的话这个应该是很好理解的
普通的一个独立运行的C语言函数是不需要往里边传递参数的,因此不需要直接在main后边的括号中不用写参数就可以
但是如果你编的这个函数作为一个程序使用的时候会被别的程序调用,就需要main()函数中带有参数了,就像是linux中的命令行参数,这些命令本质上就是一个一个的可执行程序,当然,很多都是可以传递过去参数的程序,我们使用命令的时候都是命令+参数的形式,命令执行的时候其实就是调用了对应的可执行程序,命令后边的参数就是通过argv传递过去的。
当然,就算你只执行了一个命令,后边没有参数也可以,因为很多程序都不需要参数,这时候默认的也是有argc和argv的内容的,argc=1, argv就是“程序名”(这个程序名就是一个程序名称的字符串)。系统中所有的可执行程序都有独立的main函数,而且都是从main开始执行的,我们只有通过输入命令的名称(也可以认为是可执行程序的名称)来寻找要执行的命令,如果从这个方面来说,那么往命令行中输入的命令名其实也算是一个参数,事实上,系统就是这么处理的,所以argv[0]中存放的参数永远都是程序(或者说指令)的名称,从argv[1]开始才是各个参数(当然,如果有参数的话)
至于环境变量argv,这个是你运行一个程序的时候,这个程序运行时候的环境状况,比如默认的执行路径啦,程序的权限和所有者啦等等,一般情况下这个是不需要改变或者设置的。如果有一些情况,比如你编写程序想要知道这个程序运行时候的各个环境变量,你就可以使用这个参数了,然后在程序中读取这个字符串数组指针指向的各个字符串的内容就可以了。
我自己写的,没有功劳也有苦劳了,接受了吧
#define STACK_SIZE 100
#define PUSH_POP_SUCCESS 1
#define PUSH_POP_ERROR 0
struct _stackbuf {
int _collection[STACK_SIZE];
int _top;
};
typedef struct _stackbuf S_STACK;
typedef unsigned int u_int_f;
// 入栈
u_int_f push(S_STACK *stack, int d){
if (stack-_top = STACK_SIZE) return PUSH_POP_ERROR;
stack-_collection[stack-_top++] = d;
return PUSH_POP_SUCCESS;
}
// 出栈
u_int_f pop(S_STACK *stack, int *e){
if (!stack-_top) return PUSH_POP_ERROR;
*e=stack-_collection[--(stack-_top)];
return PUSH_POP_SUCCESS;
}
int main(){
S_STACK stack = { {0},0 };
push(stack, 1);
push(stack, 2);
push(stack, 3);
int gv = 0;
pop(stack, gv);
printf("%d\n", gv);
system("PAUSE");
return 0;
}
答案:
代码:
#includestdio.h
#includestdlib.h
double GV(double x);
int main ()
{
double v,r;
printf("请输入球半径r:\n");
scanf("%lf",r);
v= GV(r);
printf("球体的体积:%lf\n",v);
system("pause");
return 0;
}
double GV(double x)
{
double y;
y=4*3.1415*x*x*x/3;
return y;
}