中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

argc,argv和C/C++易錯題分析

發布時間:2021-11-29 14:49:47 來源:億速云 閱讀:163 作者:iii 欄目:大數據

這篇文章主要講解了“argc,argv和C/C++易錯題分析”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“argc,argv和C/C++易錯題分析”吧!

argc即argument count. 顧名思義,是用戶在命令行內輸入的參數個數。

argv即argument vector. 是用戶輸入的參數vector庫(數組)

int main(int argc ,char *argv[])

char *argv[] 即指針數組([]優先級別高于*,于是就里面的每個元素都是char*類型,要理解好 char (*argv)[] 和 char *argv[]的區別),每一個元素內,存的都是參數,這些參數都是字符串。其實就是vector庫。如果你這里暫時不理解,沒關系,往下看。

它其實就是記錄了程序被執行時所傳入的參數。包括打開程序的那條語句。如我保存了一個程序為test.exe, 在命令行執行這個程序并順便帶幾個參數:

test.exe x y z

這樣的話argc就是四個參數,分別為text.exe、x、y、z. 輸出的話將是這樣的:

代碼:

#include <iostream>

using namespace std;

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

cout << "參數個數是: " << argc << endl << "分別是:" << endl;

for (int i = 0; i < argc; ++i)

cout << argv[i] << endl;

return 0;

}

argc,argv和C/C++易錯題分析

可見它其實就是將參數存在argv這個vector庫)內,你想輸出的話可以直接輸出這些參數。

理清楚優先級別

1.

int x,y,z;

x=y=1;

z=x++,y++,++y;

printf("%d,%d,%d\n",x,y,z);

其中:

z=x++,y++,++y;

這是逗號表達式,最終結果為最后一個數。這么說你可能會以為答案是2,2,3.

但實際上不是的,這里不是z=(x++,y++,++y);如果是這樣的才是2,2,3.

所以正確答案應該是2,3,1.

2.

設a、b、c、d、m、n均為int型變量,且a=5、b=6、c=7、d=8、m=2、n=1,則邏輯表達式(m==a<b)&&(n==c<d) 的值為__.

你或許會以為是1,但實際上大小號的優先級別大于==號,所以答案應該是0

小心取整問題

假定x和y為double型,則表達式(x=2,y=x+5/2)的值是__C__ 。

你或許會以為答案是4.500000,但是5/2會自動向下取整,所以真實答案是4.000000.

static局部變量只被初始化一次,下一次依據上一次結果值

#include <iostream>

using namespace std;

int f(int a)

{

int b = 0;

static int c = 3;

b++; c++;

return(a + b + c);

}

int main()

{

int a = 2, i;

for (i = 0; i<3; i++) printf("%d\n", f(a));

return 0;

}

答案是7 8 9,我不想排版太難看,所以還是自己腦補空格變換行吧!

小心宏定義

#include <stdio.h>

#define ABC(x) x*x

int main()

{

int a = 3, b;

b = ABC(a + 1);

printf("b = %d \n", b);

return 0;

}

這里的答案是7。原因是什么呢?因為宏定義只是單純的替換而已。其實b=a+1*a+1=7.

感謝各位的閱讀,以上就是“argc,argv和C/C++易錯題分析”的內容了,經過本文的學習后,相信大家對argc,argv和C/C++易錯題分析這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长宁县| 浪卡子县| 右玉县| 扶沟县| 滦平县| 云南省| 徐汇区| 哈巴河县| 荆门市| 乐至县| 营山县| 湖北省| 泸西县| 平塘县| 涪陵区| 奉贤区| 克什克腾旗| 寻乌县| 株洲县| 铁岭县| 金塔县| 太白县| 郓城县| 托里县| 蒙山县| 资溪县| 克山县| 丰都县| 东丰县| 西峡县| 凤庆县| 吉木萨尔县| 新密市| 清涧县| 大连市| 威海市| 新泰市| 乾安县| 南康市| 铁岭县| 察雅县|