跪求高手解釋下面2題C語言題目,萬分感謝

2021-04-20 02:10:41 字數 795 閱讀 8396

1樓:匿名使用者

其實很簡單 所謂的址傳遞還是值傳遞 只不過傳遞的是位址的值罷了也就是說傳遞指標就是相當於傳遞 int。(32位)你在函式裡修改值傳遞過來的int當然不影響外面的東西了。

想要影響必須解引用(*)也就是說修改這個int儲存的位址裡的內容。

不信你試試void p(int a)

mian()

你那題目第乙個函式修改的是 值傳遞進去的p和 q內的位址儲存的內容。

因為是值傳遞所以main裡的r不會改變什麼 因為n的位址儲存的內容被改變了所以n被改變了。

第二題也差不多修改的都是值傳遞進去的內容。所以不會改變。

看看這個相信你對指標和引數傳遞的理解會加深一點點。

2樓:

第一題void f(int *p,int *q)

注意是p=p+1,不是*p=*p+1

所以不會改變*p的值,故不變。

3樓:匿名使用者

對於第一題f(r,&n)之後p=p+1。所以沒有了實際值...而對於*p的值是n,而*p+1就是n+1成立了...因此輸出1.3;

對於第二題void fun其實只是交換了指標的指向對於p.q都沒有影響,所以只是在輸出初值,輸出了3.5.3.5

4樓:匿名使用者

#include

void f(int *p,int *q)main()

void f(int *p,int *q)#include

void fun(int *a,int *b)main()

求C語言高手解釋

bcd是計算機表示十進位制的方法,0 9分別對應0000 1001 8421碼 0000 1001表示為十六進製制就是0x0 0x9 十進位制12表示為bcd為0001 0010 二進位制 表示為十六進製制就是0x12 小明誤以為這是二進位制數,所以00010010 二進位制 18 十進位制 其實0...

用C語言詳細解釋一下該程式,C語言跪求解釋該程式每一句的詳細意思?

程式如下 include int max int x,int y void main main函式呼叫 strcpy a,null 該函式內部throw invalid argument s 丟擲乙個專char 型別的異常,於是該函式內部的正常 中斷執行。屬 catch char e argumen...

求高手解釋c語言各種字元

找本譚浩強的c語言教程 前幾章就是介紹這些概念性的東西,仔細看 肯定能學會 什麼字元?是函式體 範圍 printf 是列印到控制台 scanf是接收由控制台輸入的變數.void 是 空的意思.多用於函式返回空,或者 void 指標.int 是整形 定義整形變數 是表示語句塊,在其中定義的可賦值空間具...