0822每日一練分享

2021-10-23 17:32:27 字數 1081 閱讀 9810

答:陣列是相同資料型別的元素按一定順序排列而成的集合,是一種順序表結構體。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。

陣列又可分為數值陣列、字元陣列、指標陣列、結構體陣列等各種類別。

結構體是由一系列具有相同型別或不同型別的資料構成的資料集合。結構體在函式中的作用最主要的就是封裝。

陣列和結構體相似的地方是都不再是單一的原子型別,而是乙個集合。區別在於陣列是相同型別元素(元素可以是原子型別的整型、浮點型、字元型或者結構體體、陣列等)的集合,而結構體是不同型別元素(元素可以是原子型別的整型、浮點型、字元型或者結構體體、陣列等)的集合。

在取位址方面兩者也有不同,陣列的陣列名就代表首位址,依次+1,+2……就可以表示其他元素的位址,不需要使用取位址運算子&;而結構體本身只是一系列不同型別元素的集合,本質上只是把很多態別的元素放在一起,以適應具體問題中資料(例如乙個學生的成績資訊、商家的顧客資訊等)的儲存方式,所以取位址依然需要採用取位址運算。

兩者的訪問方式也不同,陣列可以直接利用下標訪問,而結構體必須使用結構體中成員的變數名。

結構體的定義一般放在主函式外面,這樣其他函式就可以使用這種型別的結構體定義具體的結構體;而陣列則由於定義和使用都較為簡單,可以直接在需要使用的函式中定義即可。

int m[5]

=;int i =2;

int y =10;

m[i++]+

= y;

答:m[5]=

思考這個題目時我也遇到了想複雜了的乙個小問題,就是我一開始認為m[i++]+=y是m[i++] = m[i++]+y;那麼優先計算右邊的m[i++]為m[2],值為3,所以=右側為13,但是經過了i++,=左側的i的初值就變成了3,所以變成了m[3] = m[2]+y;原陣列中4被替換成了13。但我編譯驗證之後發現並不像我一開始想的那樣,所以我就又去了解了一下+=這個運算子的作用,發現他和拆開的表示式還是有區別的,簡單來說就是他直接就是m[2]=m[2]+y;乙個加數和=左邊的變數一定是一樣的。

每日一練4

員工表emp 員工編號eid,姓名ename,工作職位title,僱傭日期hiretime,工資salary,獎金bonus,部門depart 部門表dept 部門編號did,名稱dname,部門領導leader 員工資料 1001,張三 銷售 1999 12 1 3000.0,1100.0,102...

每日一練25

請描述 mysql 從安裝到配置的全部詳細過程 確保一台新電腦可以順利使用 mysql mysql安裝嚮導啟動,按 next 繼續 選擇安裝型別,有 typical 預設 complete 完全 custom 使用者自定義 三個選項,我們選擇 custom 有更多的選項,也方便熟悉安裝過程 選擇配置...

每日一練 13

談談你對ajax 的理解?概念 特點 作用 select 教師號,sum case when 星期號 1 and 是否有課 有 then 1 else 0 end as 星期一,sum case when 星期號 2 and 是否有課 有 then 1 else 0 end as 星期二,sum c...