有一個關於這個問題*argv[]
:爲什麼使用參數時使用了一個指針?
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
int main(int argc, char *argv[])
{
if (argc != 2) {
fprintf(stderr, "Usage: %s <string>\n", argv[0]);
return 1;
}
char *input = argv[1];
for (int i = 0; i < strlen(input); i++) {
if (isalpha(input[i]) == 0)
return 1;
}
argc
對我來說很有意義,因爲它是一個包含與指令傳遞的參數數目一個int變量。然而,爲什麼argv[]
需要成爲一個指針而不是其本身的變量?
在哪裏存儲配置了該參數,是否有限制?是否有可能使用參數而不是fgets來輸入參數?
這是一個指向char的指針數組,指向char的指針是表示字符串的std c方式。 –
http://cdecl.ridiculousfish.com/?q=+char+*argv%5B%5D –
當需要存儲和傳遞不可預知(可變)長度的字符串數組時,「鋸齒狀數組」方法起作用很不錯。鋸齒數組通過指針數組實現。這正是你在這種情況下看到的。 – AnT