我不知道如何填写句子"如果通过initial_value".我必须使用变量参数吗?它对我来说不太可读,所以我找到了其他方法.
请帮帮我..
int *func (int initial_value) {
int *number;
number = malloc(sizeof(int));
if ("if initial_value is passed") *number = initial_value;
else scanf("%d", &number);
return number;
}
Run Code Online (Sandbox Code Playgroud)
在C(和C++)中调用没有参数的函数将导致编译时错误.因此,如果没有参数,则无法调用该函数.
我认为你要找的是默认参数,这是一个C++特性.它在正常的C中不可用.
可以通过指针实现在C中实现类似的方法:
int * func (int * initial_value) {
int x;
if( initial_value == NULL ) {
x = 5;
} else {
x = *initial_value;
}
//...more code and return
}
//when you call it use:
func( NULL ); // x = 5
int arg = 7;
func( &arg ); // x = 7
Run Code Online (Sandbox Code Playgroud)
边注:
scanf("%d", &number); -> scanf("%d", number); //because number already is a pointer
Run Code Online (Sandbox Code Playgroud)