首先,我不得不说我是C编程新手。我想要做的是编写一个程序,它接受一个参数输入并将其转换为一个整数,然后返回它的值。我的代码如下所示:C参数转换
#include <stdio.h>
#include <stdlib.h>
int main (int argc, char *argv[])
{
int fromArgv = NULL; /* holds value from argv[1] */
fromArgv = atoi (argv[1]); /* convert argv[1] to int */
/* if incorrect no. of arguments entered */
if (argc != 2) {
fprintf (stderr, "error: wrong number of arguments\n");
exit (EXIT_FAILURE);
}
return fromArgv;
}
我在尝试编译时出现以下错误:
ex1.c: In function ‘main’:
ex1.c:6:18: error: initialization makes integer from pointer without a cast [-Werror]
cc1: all warnings being treated as errors
作为一个旁注,我只是不禁想知道为什么你试图首先获取参数的值,但只有然后检查它是否实际上已经被赋予 - 否(用'argc!= 2') – raina77ow
As它似乎是今天丑陋的铸造:'int fromArgv =(int)NULL;'会工作。 – alk
@alk为什么它不能写成像'int fromArgv = atoi(argv [1])',我想知道。 – raina77ow