[問題]
我在看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::vectorstring> 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...