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.我覺得不能說我沒有用心,也不能說我不認真不努力 只是說比你優秀的人...