1. 程式人生 > >ubuntu下C語言函式傳參

ubuntu下C語言函式傳參

在進行C語言程式設計時,有時候需要使用命令列傳參,下面對其進行一個分析。

int main(int argc,const char * agrgv[])

 

int argc 命令列引數個數(包含檔名)

 

const char* argv[] 指標陣列:將命令列引數首地址作為元素,加上const關鍵字的意思是陣列中的內容是不能修改的,很明顯,我們進行傳參的時候,裡面的內容是不需要修改的,這就是const關鍵字的真正含義!

 

原始碼例子:

#include <stdio.h>
int main(int argc, const char *argv[])
{
	printf("argc = %d\n",argc);
	printf("argv[0] = %s\n",argv[0]);
	printf("argv[1] = %s\n",argv[1]);
	return 0;
}

原始碼執行結果:

 

 

分析:

執行./a.out的時候,引數的個數為1個,這是a.out被放入到了argv[0]中;

執行./a.out  ls的時候,引數的個數為1個,這是a.out被放入到了argv[0]中;

ls被放入到了argv[1]中。

 

以下方式實現引數無限傳遞,並且無限顯示:

#include <stdio.h>
int main(int argc, const char *argv[])
{
	int i = 0;

	printf("argc = %d\n",argc);
	
	for (i = 0; i < argc; i++ )
	{
	printf("argv[%d] = %s\n",i,argv[i]);
	}
	return 0;
}

 

這樣就可以完全理解命令列傳參的全部了!