#include using namespace std;
#include #include //間接賦值
//通過形參改變實參
int demo02(int *p/*out*/)
int demo01()
//二級指標的應用
int demo04(char **p/*out*/)//通過二級指標去改變一級指標
int demo03()
int main ()
; 2、**指標用在,malloc不知道所要打包的資料有多大的時候,或者函式二返回的資料給函式一使用的時候。為了防止在stack上定義的被清空,無法返回出去的時候 ,其他的時候禁止使用malloc。
3、指標的資料型別跟指標沒關係,只是告訴作業系統如何去解釋指標所指向的記憶體空間。
4、 char***p3=null;
char**p2=null;
p3=&p2;//
*p3=0x1100;//這時候p2這個指標變數改變了。
5、看指標是做輸入還是輸出?什麼是輸入什麼是輸出呢?
先說什麼是輸入,一般情況下在主調函式裡面分配記憶體,被呼叫函式使用,一般稱為輸入。
如果在被呼叫函式裡面分配記憶體,供主呼叫函式使用,則成為輸出。
6、作業如上:各級指標的做函式引數的推演過程以及典型錯誤
*/ system("pause");
return 0;}/*
1、除了做底層應用,其他的慎用malloc,因為不free會發生記憶體洩露,而且要是緊跟break或者return 就free不了了
2、int*p=null只要申請乙個四位元組的記憶體空間,
3、程式執行記憶體分析的能力。訓練介面的封裝和設計能力
4、函式內變數的記憶體執行分布
5、資料型別是解釋記憶體空間的
6、指標也是一種資料型別,指標的資料型別是指所指記憶體空間的資料型別。
int func(char);//按8位元組去處理記憶體空間的資料
int func(char *a);//按字串去處理
7、指標變數和他所指向的記憶體塊是不同的概念。
8、野指標?*p=null只是定義了指標變數,沒有分配空間
9、間接賦值是指標存在的最大意義。
10、改變變數有兩種方法直接和間接賦值。
int demo04_gaozhijiao(char **p/*out*/)//間接,通過二級指標去改變一級指標
int demo02_gaozhijiao(int *p/*out*/)
11、間接賦值存在的意義是什麼?
1、*p++=*s++//等號左邊表示改變位址,就是指向的內容,等號右邊表示取裡面的內容。
2\指標做函式引數的時候,可以作為輸入,也可以作為輸出,是輸入還是輸出,主要是看在主調函式中分配記憶體(輸入)還是在被調函式中分配記憶體(輸出)。
12、給指標p賦值p=p+1只會改變指標變數的值,不會改變所指向的內容,想改變內容用間接賦值!!int *p=&a;
13、給×p賦值只會改變所指向的內容的值,不會改變指標變數的值,
*p=200;不會改變p的值。
*/
認識C語言指標(一)
說到指標,就會出現一些複雜型別,如果對這些複雜型別不太了解,在用到指標有時就會比較懵。乙個型別裡面會有很多運算子,其優先順序和運算優先順序一樣,只需要遵循乙個原則 從變數名處起,根據運算子優先順序結合,一步一步分析 先來看看簡單的型別 int p 這是乙個普通的整型變數 int p 先從p處開始,先...
指標系列 認識指標
指標在c 學習中一直是難點和重點,由於在專案中指標應用比較靈活,所以指標所引發的問題比較多,最近針對指標進行重點學習。有人說,掌握指標,也就掌握c語言的精髓。c 中當然也有指標,同時還包括繼承 多型等等。沒有記憶體,就沒有指標,在理解指標的開始階段,先重點講解記憶體五區。如上圖所示 一般下理解記憶體...
Delphi指標認識
大家都認為,c語言之所以強大,以及其自由性,很大部分體現在其靈活的指標運用上。因此,說指標是c語言的靈魂,一點都不為過。同時,這種說法也讓很多人 產生誤解,似乎只有c語言的指標才能算指標。basic不支援指標,在此不論。其實,pascal語言本身也是支援指標的。從最初的pascal發展至今的obje...