1樓:
1 int read_2d_array(int **array, int i, int j, int column)
2以上函式的引數第一行的int **array是函式引數這個引數說明該函式引數列表一接收的資料型別為int ** 型的變數 也就是指向int*型指標變數的指標變數
那麼return((*(int*)array + i*column + j));
這裡涉及到運算子的優先順序別 可以自己看書
1.由於()運算子此時最高所以先算
*(int*)array + i*column + j
2. 由於()這裡是(資料型別)強制轉換運算子運算子此時最高所以先算
(int*)array
3.以下表示式中*運算子(指標運算子)此時級別最高所以取出array指向的記憶體空間
*array + i*column + j
4 以下表示式中*(乘號)運算子的優先順序別最高
假設i = 5,colunm = 1,j = 2;
4 + i*column + j
4 + 5 + 2
把結果11return給呼叫函式
我想你可能是對運算子的優先順序別有不明白的地方。或者指標不明白了。
包含幾個知識點:運算子優先順序別 函式呼叫 函式引數 陣列
二維指標陣列 和指標的關係
這個一句兩句講不清楚
以上重點講解優先順序
2樓:
結合註釋來看,該語句含義為 返回二維陣列array中第i行第j個元素的值
另外,這裡邊以column為總行數容易引起歧義(column一詞原意為「列」)。
c語言裡資料結構的一個問題。。
3樓:匿名使用者
1、typedef struct 【list】這裡的list只是一個起的名字,如int是整形,list 是這個結構體的型別。
下面的list就是 int i , list就是那個i;
2、定義的時候沒有下一個節點,一般都是用 p->next = null;
3、書上一般給的都是偽**,在實際寫程式中 自己要結合起來才能執行。書上都挺詳細花時間參考就能夠寫出來,考試的話看題目怎麼要求的就怎麼處理好了,一般考試看你寫的邏輯沒什麼問題就可以。
4樓:匿名使用者
1,這就是typedef的語法 typedef a b,把a型別定義一個別名b型別,沒有什麼其他的玄機.
2,是這樣的,你使用struct lnode *的時候,struct lnode的確還沒有定義好,不過這沒關係.無論指向任何結構的指標,所佔用記憶體的大小都是一樣的,編譯器只要知道是個指標,就可以正確分配空間,沒有問題.
3,這個看具體要求了,要求會說的很明確,是隻要寫演算法函式,還是同時需要寫main和測試語句.
c語言資料結構一個小問題
5樓:聽不清啊
queue->front++
這裡的++就體現了「出隊」的操作。
c語言中資料結構的問題~~
6樓:
給個偽**:
迴圈開始,直到\0結束
如果(提取字串中的一個字元)是}
那麼 缺少左括號
否則 如果是或者\0
如果為\0
缺少右}
總迴圈結束
C語言資料結構迴圈佇列插入操作,資料結構(使用C語言)佇列
取餘是為了判斷佇列是否是滿的 sq a sq rear x 這句是講x插入到隊尾 include include struct link cqueue 初始化迴圈鏈佇列 struct link cqueue init link cqueue 1 插入 即入隊 演算法 struct link cque...
資料結構演算法c語言描述和c或c程式具體什麼關
1 程式是寫完源 後,計算機編譯後得到的可執行檔案。2 演算法一般結合數學思想,以下內容算是演算法 給陣列按大小排序 查詢陣列某元素 圖形處理演算法 音訊識別處理。但廣義上,用了順序分支迴圈就是演算法。演算法是指邏輯層面上解決問題方法的一種描述,一個演算法可以被很多不同的程式實現.演算法並不是程式或...
資料結構C語言中引數傳遞的與用法
在c 中作為引抄用形參,c中是不能襲這樣用的,資料結構中使用的類c寫的,為了保持相容性就是用了引用形參 是用的c中的雙指標的問題,就是說指向指標的指標,即指標的內容在函式中可以被改變,如果用單指標指標的話,對指標的改變不會被帶出函式 這一點是難點,我以前也在這而迷惑了好長一段時間,好好想想等你明白了...