int argc 、char *argv[] 與 char **argv

char *argv[] 與 char **argv

複製代碼
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[])//同int main(int argc,char **argv)
{
  char *str_test = "hello wang";
  int i,j,len;
  for(i=0;i<argc;i++)
  {
    printf("argv%d is %s\n",i,argv[i]);
    len = strlen(argv[i]);
    printf("len = %d\n",len);
    for(j=0;j<len;j++)
    {
      printf("argv%d%d is %c\n",i,j,argv[i][j]);
    }
  }
  printf("str_test = %s\n",str_test);
  printf("str_test = %c\n",str_test[1]);
  return 0;
}
複製代碼

//argv:字符串數組,內容爲指向字符串的指針(argv[0],argv[1],argv[2])

//argv[0],argv[1],argv[2]分別指向第1,2,3個字符串的指針
//argv[0][i],argv[1][i],argv[2][i]分別爲第1,2,3個字符串中的第i個字符

//strlen():計算的是字符串實際個數(長度),不包括'\0',遇到第一個'\0'結束.如果你只定義沒有給它賦初值,這個結果是不定的,它會從首地址一直找下去,直到遇到'\0'停止.
//sizeof():返回的是變量聲明後所佔的內存數(即變量類型的字節數),不是實際長度,此外sizeof不是函數,僅僅是一個操作符,strlen()是函數

//不嚴格的來看:    *str = c[]

                            **str = *str[] = c[][]

wang@wang-X455LJ:~/program_test/c_program_test$ ./test wang cai
argv0 is ./test
len = 6
argv00 is .
argv01 is /
argv02 is t
argv03 is e
argv04 is s
argv05 is t
argv1 is wang
len = 4
argv10 is w
argv11 is a
argv12 is n
argv13 is g
argv2 is cai
len = 3
argv20 is c
argv21 is a
argv22 is i
str_test = hello wang
str_test = e                     

argc 爲輸入參數的個數,該例子中的值爲3

參見:http://www.cnblogs.com/cj2014/p/4654711.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章