形式int a[10],*p;
p=&a[0];
p=a;
含義*++p
p先加1,再取p的值
(*p)++
*p指向的物件加1
有**p++和*(p++)
先取*p的值,再p++
#指標間可以相減,不可相加,相加無實際意義。
說明:[ ]是變址運算子,即a[i]=*(a+i)
#使用指標指向陣列元素注意事項:
1.可以通過改變指標變數的值指向不同元素
2.不用p變化的方法而用陣列名a變化的方法是不行的。
a是位址,是乙個指標型常量,其值在程式執行過程中是固定不變的。所以a++無法實現。//錯誤展示
for(p=a;a<(p+10);a++)
printf("%d",*a);
3.注意指標當前值。
for(i=0;i<10;i++)
scanf("%d",p++);
==p=a;==
for(i=0;i<10;i++,p++)
printf("%d",*p);
初步認識指標。。。。(新手)
看到這樣一串 int a 10 int b 20 int p a p 10 p b p 200 p a int pp p pp a pp 1000 pp b pp 2000 是不是一臉的懵逼,現在讓我們來看看他的每一句都是什麼意思。開始之前我們先了解一下指標和解引用。指標 pointer 是程式語言...
智慧型指標的初步認識
開闢了記憶體空間,必定要釋放記憶體空間,如果不釋放就會造成記憶體洩漏,引發安全問題。如果 量很少的時候,我們會記得釋放掉開闢的空間,但是如果 量過大,我們會忘記開闢的空間,那麼就需要智慧型指標來幫助我們自動釋放空間。例如 include intmain 有了智慧型指標,下面的釋放空間的語句我們就不需...
智慧型指標初步認識 自己實現
目的 new出來的物件,需要程式設計師自己釋放堆上的空間,智慧型指標就是把堆上的空間同棧一起釋放 過載 讓智慧型指標像普通指標一樣使用 分析更簡單明瞭 include using namespace std class person void showage person private int m...