首先,我不得不說我是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