int main(int argc, char* argv[]) vs運行帶參數程序,指針數組

我們大多數看到的c++程序的main是這樣的

void main() 
{
……
}

這樣的函數方便在vs裏面調試,但是有時需要直接進行外部輸入
我們看到的main函數是這樣的

int main(int argc, char* argv[])
{
……
}

argc爲統計argv數組中元素個數的變量,不需要我們輸入
我們輸入時只需要輸入參數給指針數組argv即可(指針數組char* agrv[]知識在最後有所補充)

現在我們需要解決的問題是,在我們運行程序時,如何輸入參數給argv[]呢?
程序中,讀取argv[]的地方改成我們需要的參數——可以這麼做,當然這麼做的弊端也是挺大的,你需要去每個位置修改。
或者是在程序開始直接定義agrv()

不過,我們可以通過正規的操作處理這個程序
我們在程序調試的生成中,已經生成了exe文件,我們可以在windows情況下使用cmd運行exe程序。(命令行最大的優點時,可以同時提供exe運行所需的輸入)
首先用進入cmd界面
在這裏插入圖片描述
然後用cd進入exe所在盤
在這裏插入圖片描述
然後進入exe所在的文件夾

在這裏插入圖片描述
輸入程序名,並在後面加空格後輸入需要輸入的參數,這裏的參數是一張在exe文件所在文件夾的圖片。
在這裏插入圖片描述
然後就可以順利運行了。

指針數組

指針構成的數組
和普通數組的區別在於,普通數組每個元素對應一個字符

指針數組,每個元素對應一個地址,這個地址就可以裝多個字符了。
關於指針的理解,可以看二郎之前的博客,有詳細講解,易懂。
指針和我們普通變量最大的差別在運算和表達上,用指針就在指針系統下思考,用普通變量就在普通變量系統下思考。

char a[3][5]={"aaa","bbb","ccc"};
char *n[3]={"aaa","bbb","ccc"};

上面寫的是一維指針數組,二維指針數組在引用時,需要指定具體位置
因此用到了**

char *ptr_array[3][3]={{"xxx","yyy","zzz"},{"x","y","z"},{"xx","yy","zz"}};

*(*(ptr_array+2))=“xx”

*(*(ptr_array+2)+2)=“zz”

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