這周我刷題用的知識都是之前的知識靶衍,就不重復了拷呆,就寫我這周學的指針伶棒。
指針的定義:指針是c語言的一種特殊而又非常重要的數(shù)據(jù)類型(用來找數(shù)據(jù)的地址)钩述。利用好指針和結構體可以有效表示許多復雜的數(shù)據(jù)結構吊趾。指針的作用很大很廣泛宛裕,可以說沒學過指針就相當于沒學c語言。
直接尋址與間接尋址:
直接尋址论泛,即直接訪問變量的值揩尸,使用變量名(如:用a直接存取變量值)或使用變量的地址(用&a來獲取變量的地址)都可以直接引用變量的值。&a表示的是變量a在內(nèi)存中所占存儲單元的首地址屁奏。
間接尋址岩榆,即通過先訪問一個變量(p)獲得另一個變量(a)的地址值,然后再到該地址值代表的存儲單元中去訪問變量a,如:p=&a朗恳。
指針變量:
上面的變量p湿颅,是一種特殊類型的變量,即指針類型的變量粥诫,簡稱指針變量油航。指針變量是c語言中專門用于存放地址型數(shù)據(jù)的變量。
指針的兩個運算符&和*:
取地址運算符&怀浆,用于得到變量的地址谊囚,即取址。
指針運算符*执赡,可以放在指針變量前已實現(xiàn)通過指針變量間接訪問他所指向的存儲單元镰踏,即取值。又稱為間接尋址運算符沙合,解引用運算符奠伪。
定義一個指針變量:
類型關鍵字? *變量名 ?? *在這里是指針類型說明符;類型關鍵字指定了該指針變量可以指向哪一種類型的變量首懈,被稱為指針的基類型绊率。
指針變量的特點:
1.指針變量的內(nèi)容只能是變量的地址,而且必須用相同基類型的變量地址對指針變量進行賦值究履。
2.指針變量必須初始化才能使用滤否,不能使用未初始化的指針,否則指針所指向的存儲單元是未知和不確定的最仑。很有可能會導致程序異常終止藐俺。
3.指針的運算實質上是對地址值的運算,只能參與賦值運算泥彤、算術運算和關系運算欲芹。
4.指針算術運算不同于一般的算術運算,指針每次+1吟吝,指針值的變化為:加sizeof(基類型)字節(jié)耀石。
字符指針:
用來指向字符型數(shù)據(jù)的指針變量。
定義示范:char? *ptr=“China” ? 這里ptr代表的是該字符串的首地址爸黄,而不是字符串。
對于指針的筆記暫時就是這些了揭鳞,下次再接著補充炕贵。