如何在 C 中使用不同的变量作为函数参数?
How do I use different variables as a function parameter in C?
C 和 Python 的共同点是您实际上可以使用函数更改变量类型。一个例子是 atoi()
,它将 char * (string)
转换为 int
。所以我通过制作一个函数来试验它:
#include <stdio.h>
#include <stdlib.h>
int make_int(char *str);
int main() {
char str[256];
scanf("%255s", str);
printf("%i\n", make_int(str));
}
int make_int(char *str) {
return atoi(str);
}
它按预期工作,但我没有考虑到的是,在 C 中,你必须告诉变量它是什么类型,不像 Python,你可以只命名并分配它.我想实际做其他变量,但在这个过程中可能会变得更复杂。
问:如何创建一个参数实际上是随机类型的函数,就像 Python 那样?我如何实际将任何变量也更改为 int
?
你不是这样的。 C是一种静态类型语言。但是,根据 Random Davis 的评论,void *
并传递地址可以工作,但是如果不传递另一个参数,您将无法知道传递的变量的类型是什么(因此 printf 等的格式字符串,它们使用另一种机制: 可变参数(原型中的 ...
)。
C 和 Python 的共同点是您实际上可以使用函数更改变量类型。一个例子是 atoi()
,它将 char * (string)
转换为 int
。所以我通过制作一个函数来试验它:
#include <stdio.h>
#include <stdlib.h>
int make_int(char *str);
int main() {
char str[256];
scanf("%255s", str);
printf("%i\n", make_int(str));
}
int make_int(char *str) {
return atoi(str);
}
它按预期工作,但我没有考虑到的是,在 C 中,你必须告诉变量它是什么类型,不像 Python,你可以只命名并分配它.我想实际做其他变量,但在这个过程中可能会变得更复杂。
问:如何创建一个参数实际上是随机类型的函数,就像 Python 那样?我如何实际将任何变量也更改为 int
?
你不是这样的。 C是一种静态类型语言。但是,根据 Random Davis 的评论,void *
并传递地址可以工作,但是如果不传递另一个参数,您将无法知道传递的变量的类型是什么(因此 printf 等的格式字符串,它们使用另一种机制: 可变参数(原型中的 ...
)。