第一周總結 結構體,共用體,函式,指標

2021-09-29 22:03:07 字數 2702 閱讀 7922

1. 結構體的定義

方式1:

struct pointnode;
這種比較常用,在定義之後的任意位置仍課用該結構體來定義其它變數,適用於需大量引用該結構體型別的情況。

方式2:

struct point

;struct point node;

這是一種較為簡略的形式,型別與變數的定義結合在一起。

方式3:

struct

node;

這種定義的形式適用於一次性定義該結構體型別變數的情況。

因為沒有定義結構體型別名,所以不能在別的地方用它定義其他結構體變數。

2. 結構體變數的引用

可以將結構體賦給同型別的變數。

結構體陣列元素不能整體輸入或輸出。

union utype

;

其中union是共用體型別的關鍵字,utype是自定義的結構體型別識別符號,二者共同組成共用體型別名。

需要注意的幾點

1.不能對定義的共用體型別進行賦值,運算等操作,必須先定義後引用。

2.該型別變數的成員共享記憶體。

3.定義在函式外部,則全域性有效;定義在函式內部,則本函式內有效。

定義格式

typedef 型別名 新型別名;

僅給已有的型別名重新命名,並未產生新的資料型別,而是多了乙個別名。

與#define的區別

#define是預處理的巨集代換;typedef是「取別名」。

經典例題:n!,漢諾塔;n!

#include

intfab

(int);

intfab

(int n)

intmain

(void

)

漢諾塔

#include

void

hanoi

(int n,

char x,

char y,

char z)

;void

hanoi

(int n,

char x,

char y,

char z)

else

}int

main()

指標變數的型別由定義時的型別名決定。

只允許指向基型別的變數,不允許指向其它型別的變數。

char

*p1;

int*p1;

p1++

;p2++

;

其中,執行p1++後,位址位元組增加了1;執行p2++後,位址位元組增加了4。

4.指標變數只有在正確賦值後,它才儲存了某乙個變數的位址。

5.不能用整數給指標變數賦值,也不能將位址值賦值給指標變數。

float

*p1; p1=

2000

;int n,p; p=

&n;

6.在函式中,指標變數做形參,則可通過傳遞變數所在的位址,來對變數進行實質性的改變。

7.「null」為空指標,不指向任何儲存單元,可以賦給任何指標型別的變數。

8.通過指標訪問陣列元素時,需將陣列元素的位址賦給它,可通過對位址的增減運算使它指向不同的陣列元素。

9.陣列名是指向陣列第乙個元素的指標變數,而不是指向整個陣列的指標變數。

10.函式呼叫時,將主函式中的實參陣列的首位址傳給形參,此時,對相應的形參和實參代表了同乙個實參陣列,可以對整個陣列進行訪問與修改。

11.定義指標時,需明確賦值,否則該指標位址為指向明確的位址,用為明確的指標變數進行輸入,可能會覆蓋掉原有資料,導致破壞程式或資料。

11.指標的值是可變的,它是乙個左值;而陣列名是不可改變的。

因此,可以對指標變數進行運算,而不能對陣列名進行運算。

12.使用指標變數時,需時刻注意指標的變化範圍,不可越界。

13.指標陣列即陣列的每乙個元素都是指標,訪問其中元素時,需用到二級指標。

給指標陣列賦的初值是變數的位址,定義時必須定義為static。

14.int *argc,char *ar**[ ]

形參argc接收實參的個數,字元指標陣列ar**接收各字串的首位址。

定義和宣告的小區別

定義:定義乙個變數時,編譯器會為該變數申請相應的記憶體空間,並填一些值;

宣告:宣告乙個變數時,編譯器知道該變數被定義在了其他地方,不需要再次為此申請變數空間,在這裡不定義直接使用不會報錯。

3種鏈結性屬性

只有具備檔案作用域(eg:全域性變數,函式名等)的識別符號才具有external或internal的鏈結屬性,其他作用域的識別符號均為none屬性。

預設情況下,具備檔案作用域的識別符號擁有external屬性,也就是說該變數允許跨檔案使用。

第一周總結

第一周學習總結 第一周,我們有學習,計算機的發展,起源,計算機的各種進化,還有計算機的概念,計算機的語言,計算機的組成這些等等。讓我深刻的意識到這是很龐大的一門課程,同時也對我們接下來要學習的課程充滿了期待。對於我自己來說,第一周的學習我還是覺得挺不錯的,挺開心的,能認識到這麼多的朋友,這麼多的知識...

第一周總結

第一周這麼快就過去了,剛開學第一周,沒能擠出很多時間來學習,週六看了一天的課件,把老師給的三個課件看了個遍,線段樹講解和 裡都有很多題目,通過講解更徹底的了解了一下線段樹的原理,線段樹構造,區間查詢,單點更新,區間更新都更具體的講解了一下。後面還有常用的一些模版,也研究了一下,熟悉了具體的原理。主要...

第一周總結

恩。作為新成員,加入大佬雲集的團體 當然,我是小透明.心理壓力特別大,因為我學習比較被動,並且比較慢,相比其他新成員 我的進度條真的相當於沒有動,深深的感覺到自己是個菜雞 很多人已經看完了html,造成這個問題可能有以下幾個原因 1.我覺得不能說我沒有用心,也不能說我不認真不努力 只是說比你優秀的人...