操作argc, argv的經典寫法

2021-09-07 18:35:33 字數 1004 閱讀 7771

[問題]

我在看boost源**的時候看到如下的**,

templatebasic_command_line_parser

:: basic_command_line_parser(

int argc, const chart* const

ar**)

: detail::cmdline(

//explicit template arguments are required by gcc 3.3.1

//(at least mingw version), and do no harm on other compilers.

to_internal(detail::make_vectorconst chart* const*>(ar**+1, ar**+argc+!argc))),

m_desc()

{}

不明白裡面的

ar**+argc+!argc

是幹什麼用的, 請高手指教,謝謝

附上to_internal函式:

templatestd::vector

string> to_internal(const std::vector&s)

[答案]

一般而言,argc表示引數個數,ar**表示引數陣列,ar**[0]表示程式自己的名稱

如 執行程式名為z1.exe 帶引數 為字串,將字串轉為大寫輸出 

命令列輸入  z1  abcd9

這裡argc =2, ar**[0]="z1" ,ar**[1]="abcd9"

!argc表示邏輯關係

如果argc=0  !argc=1   

argc=0 !argc=1

ar**+argc+!argc表示命令行的最後,如argc=2,則將指標移到argc[2];如果argc=0,指標移到ar**[1]。

相當於char str[5];中的str[5]

mysql 經典操作 mysql常用經典操作

it168 伺服器學院 連線伺服器 mysql u cnscn h 192.168.0.1 d dbname p 3306 protocol name the protocol of connection tcp,socket,pipe,memory s,socket name 連線所用的套接字檔案...

MAIN函式的引數argc, argv說明

c c 語言中的main函式,經常帶有引數argc,argv,如下 int main int argc,char argv int main int argc,char argv argc 是指命令列輸入引數的個數,argv儲存了所有的命令列引數。下面的程式演示argc和argv的使用 includ...

linux下argc argv引數的作用

1.其實 int main int argc,char argv 是 unix 和 linux 中的標準寫法,而 int main 只是 unix 及 linux 默許的用法.那究竟 argc,argv 有何之用呢?下面看個例子 edit.c 就會明白它們的用法了 include includein...