首页 > 解决方案 > 如何在 C 中使用不同的变量作为函数参数?

问题描述

C 和 Python 的问题在于,您实际上可以通过使用函数来更改变量类型。这方面的一个例子是atoi()将 achar * (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为?

标签: pythoncinteger

解决方案


你不这样。C 是一种静态类型语言。但是,根据 Random Davis 的评论,void *传递地址可以工作,但是如果不传递另一个参数(因此 printf 的格式字符串等,它们使用另一种机制:可变参数(...在原型))。


推荐阅读