第一個(gè)參數(shù)argc表示參數(shù)個(gè)數(shù),第二個(gè)參數(shù)argv是參數(shù)組,這個(gè)作用是什么
第一個(gè)參數(shù)argc表示參數(shù)個(gè)數(shù),第二個(gè)參數(shù)argv是參數(shù)組 這個(gè)作用是什么呢?
第一個(gè)參數(shù)argc表示參數(shù)個(gè)數(shù),第二個(gè)參數(shù)argv是參數(shù)組 這個(gè)作用是什么呢?
2024-02-02
舉報(bào)
2025-02-08
我也是新手,如果我沒(méi)記錯(cuò)的話(huà),是用于在命令行執(zhí)行的時(shí)候,傳遞參數(shù)用的。就像我們?cè)诿钚写翱谶\(yùn)行命令傳遞的參數(shù)一樣,這里傳遞的也是字符串參數(shù)。第二個(gè)二級(jí)指針指向一個(gè)數(shù)組中。而這個(gè)數(shù)組類(lèi)似我們?cè)贑語(yǔ)言中定義的一個(gè)指針數(shù)組。這里說(shuō)起來(lái)話(huà)就長(zhǎng)了,。
char
?*strings[]?=?{?
"Hello"
,?
"World"
,?
"C"
,?
"Programming"
?};
類(lèi)似于這個(gè)數(shù)組,就是一個(gè)指針數(shù)組;這個(gè)指針數(shù)組里面有四個(gè)元素,這四個(gè)元素的值均為指針,其指向這四個(gè)常量字符串的首地址。例如訪(fǎng)問(wèn)第一個(gè)常量字符串可以使用strings[0], 這個(gè)“strings[0]”返回值是第一個(gè)常量字符串的首地址。這個(gè)常量字符串占用6字節(jié),末尾一個(gè)0值。?
說(shuō)遠(yuǎn)了,我們知道數(shù)組名是一個(gè)指針,也就是"strings",這個(gè)指針是一個(gè)指向指針的指針,也就是二級(jí)指針。若要傳遞給一個(gè)函數(shù),函數(shù)的形式參數(shù)就得是一個(gè)二級(jí)指針,然后直接將strings填上去即可。例如:
main(
sizeof
(strings),?strings);
sizeof(strings)返回值為4,因?yàn)閿?shù)組里面就存了四個(gè)指針值。
這樣我們?cè)诔绦騼?nèi)就可以訪(fǎng)問(wèn)到傳入的任意一個(gè)字符串了。要問(wèn)有幾個(gè)字符串,我們可以直接通過(guò)main函數(shù)的第一個(gè)參數(shù)的值獲取下來(lái),例如要訪(fǎng)問(wèn)第二個(gè)字符串做printf打印,就可以這樣寫(xiě):
printf
(
"%s\n"
,?argv[1]);
這樣就可以打印出第二個(gè)字符串了。"argv[1]"返回的就是第二個(gè)字符串的首地址了;
2024-08-10
dos命令用過(guò)吧,命令后面不是要根一些參數(shù)嗎,這兩個(gè)參數(shù)就是返回你從命令行給的參數(shù)的,你可以有這兩個(gè)參數(shù)實(shí)現(xiàn)和Dos命令一樣的功能,在你的程序里根據(jù)返回的參數(shù)來(lái)進(jìn)程不同的程序邏輯的編寫(xiě)
2024-02-07
我也是新手,如果我沒(méi)記錯(cuò)的話(huà),是用于在命令行執(zhí)行的時(shí)候,傳遞參數(shù)用的。就像我們?cè)诿钚写翱谶\(yùn)行命令傳遞的參數(shù)一樣,這里傳遞的也是字符串參數(shù)。第二個(gè)二級(jí)指針指向一個(gè)數(shù)組中。而這個(gè)數(shù)組類(lèi)似我們?cè)贑語(yǔ)言中定義的一個(gè)指針數(shù)組。這里說(shuō)起來(lái)話(huà)就長(zhǎng)了,。
類(lèi)似于這個(gè)數(shù)組,就是一個(gè)指針數(shù)組;這個(gè)指針數(shù)組里面有四個(gè)元素,這四個(gè)元素的值均為指針,其指向這四個(gè)常量字符串的首地址。例如訪(fǎng)問(wèn)第一個(gè)常量字符串可以使用strings[0], 這個(gè)“strings[0]”返回值是第一個(gè)常量字符串的首地址。這個(gè)常量字符串占用6字節(jié),末尾一個(gè)0值。?
說(shuō)遠(yuǎn)了,我們知道數(shù)組名是一個(gè)指針,也就是"strings",這個(gè)指針是一個(gè)指向指針的指針,也就是二級(jí)指針。若要傳遞給一個(gè)函數(shù),函數(shù)的形式參數(shù)就得是一個(gè)二級(jí)指針,然后直接將strings填上去即可。例如:
sizeof(strings)返回值為4,因?yàn)閿?shù)組里面就存了四個(gè)指針值。
這樣我們?cè)诔绦騼?nèi)就可以訪(fǎng)問(wèn)到傳入的任意一個(gè)字符串了。要問(wèn)有幾個(gè)字符串,我們可以直接通過(guò)main函數(shù)的第一個(gè)參數(shù)的值獲取下來(lái),例如要訪(fǎng)問(wèn)第二個(gè)字符串做printf打印,就可以這樣寫(xiě):
這樣就可以打印出第二個(gè)字符串了。"argv[1]"返回的就是第二個(gè)字符串的首地址了;
可能有沒(méi)有描述清楚的,可以再進(jìn)行提問(wèn)哈。我也是新手,咱們共同交流學(xué)習(xí)。
望采納