1樓:匿名使用者
首先程式存在一個錯誤if(max其次 max=a,單提陣列名錶示的是陣列第一個元素的地址,所以此處表示指標指向陣列的第一個元素,如果*max的值變了,那麼陣列第一個元素對應的值也相應改變
*max=a[0] 表示指標指向的單元儲存的內容被賦值為a[0]所對應的整數值,*max改變並不影響a[0]所儲存的值
對應程式如下,可交替註釋掉兩個函式的呼叫,結果與上述一致#include
#include
void fun1(int a, int n , int *max, int *d)
{int i;
max=a;*d=0;
for(i=0;i
the 4 is the max 5
1 2 3 4 5當選擇fun2時 輸出結果為
the 4 is the max 5
5 2 3 4 5
2樓:匿名使用者
max是指標,指向一個整型變數(假設這個變數為 x)第一個函式中 max = a ,意思是讓max 指向了陣列a的第一個元素
第二個函式中 * max = a[0], 意思是取陣列a的第一個元素a[0] 賦予由max指向的整型變數x
正確的是第二函式!
3樓:匿名使用者
這裡max是指標,你加了*max就是max指向的變數了。
max=a或者max=&(a[0])是讓max指向a陣列,那麼用max[n]效果和a[n]一樣。
如果用*max=a[0],那就是把max指向的變數用a[0]賦值。
說實話我看不懂你這程式要幹什麼。
4樓:
第一個應該是這樣:
*max = *a;
兩個程式的下面一句都要改:
if(*max
5樓:匿名使用者 你這題是要找出陣列中最大的值放在地址為*max中。max是一個int型的指著變數,你第一個函式中max=a,相當於把陣列a的地址賦給了max,此時max和a可以達到同樣的效果,因為兩者本質上來講都是相同的地址。 你第二題把*max=a[0];你實際上是把a陣列的第一個元素的值賦給了指標變數max所指向的那個變數,所以說*max和a[0]的值可以看成是對等的,而max本身的值和a是不對等的,max的值取決於你在呼叫這個fun函式是給這個第三個引數傳的地址值。 6樓: 前邊的一個錯誤在於:max=a;這表明把一個地址賦給了max;而地址不能與陣列中的數比較大小(也就是 max 指標陣列 copy 該陣列中存放的全部都是指標,例如 原例子中的char name,這個是一個標準透了的一維陣列,就像是陣列 int a 4 a 1 2 a 2 3 不同的是陣列name存放的是指標,陣列a存放的是數字 name 1 name 2 表示的是把name 2 的指標賦值給name 1 就... c c 的指標的靈活,常把許多初學者搞暈,連高手也是如此。1.當然,可以呀,一切資料都可返回 2.複合指標型別直接表示非常麻煩 連高手都是這樣 可以分解成多個簡單型別 typedef void funtype void funtype num 100 分解後簡單多了!3.因為函式名不是字串,初始化時... 1.函式指標的陣列定義方法 返回值型別 指標變數名 number 形參列表 例如 double add double a,double b double sub double a,double b double mul double a,double b double div1 double a,d...C語言指標陣列與二維陣列行指標小問題
c語言指標陣列如何存放函式地址C語言指標陣列如何存放函式地址
c語言 怎麼呼叫指標陣列函式,C語言 怎麼呼叫指標陣列函式