指標,就是指記憶體位址,指標變數是用來存放記憶體位址的變數,不同型別的指標變數所占用的儲存單元長度是相同的,而存放資料的變數因資料的型別不同,所占用的儲存空間長度也不同。有了指標以後,不僅可以對資料本身,也可以對儲存資料的變數位址進行操作。
定義指標**如下:
int a=
100;
int* p;
// 定義乙個整型指標
char
*f,f1;
//定義字元型指標
//其中只有f是指標,f1是字元型資料,因為*只會和第一結合
p=&a;
//對指標進行賦值&
printf
("%d\n"
,p);
//指標中所存的a的位址
printf
("%d\n"
,&p)
;//指標所在的位址
printf
("%d\n"
,*p)
;//指標內a的值
//定義倆個指標
typedef
char
* char;
intmain()
此時將游標放到此處可以看到char對p2進行了定義
void
main()
//字元型陣列指標
char
*arr1=
;printf
("%c\n"
,*arr1[0]
);//arr[0]表示「hello」的首位址,即'h'的位址,輸出字元型%c,
printf
("%c\n",*
(arr1[0]
+1))
;//輸出e
printf
("%c\n"
,*arr1[1]
);// 1
printf
("%c\n"
,*arr1[0]
+1);
//*arr1[0]獲得hello中的h,+1表示下個字母 i
printf
("%c\n"
,*arr1[3]
+1);
//*arr1[4]獲得ma中的m,+1表示下個字母 n
對字串進行排序
void
bubble
(char
** arr,
int len)
//方法2.把二級指標當做二維陣列,但不是所有指標都適用,看情況
if(arr[j][0
]>arr[j+1]
[0])
}}}void
main()
;/* 記憶體中
student
tree
newbee */
bubble
(p,4);
for(
int i =
0; i <
4; i++
)/*記憶體中
beenew
student
tree
*/}
指向記憶體編號為100的記憶體位址;
0-255是系統保留,不能讀不能寫
野指標是指向同乙個未知的記憶體空間,盡量不這麼寫;
空指標:指向記憶體編號為0的空間,操作空指標會出錯;一般用來判斷
int
*p;p=
null
;
萬能指標:可作用陣列
int a =10;
void
*p =
&a;//萬能指標 指向a*(
int*
)p=100;//對a進行修改變為100
printf
("%d",*
(int
*)p)
;//使用指標輸出需要確定資料型別
C語言隨筆4 指標陣列 陣列指標
陣列 1 陣列名為位址,表達方法 int a 10 a 陣列名表示首位址 a 陣列名加取位址符,仍然表示首位址 a 0 第0個元素的位址,即首位址 陣列名是指標常量,值不可變,不占用記憶體空間 2 指標陣列 每個元素都是指標 指標陣列 double a 10 每個元素佔4 8個位元組 3 陣列指標 ...
C語言筆記系列 六 指標
指標的值是位址,大多系統內部由無符號整數表示,但它是一種新的資料型別,不是整數型別。int n 20 printf d p n,n 分別輸出值和位址 四種宣告等價 intsum int a,int n intsum int int intsum int a,int n intsum int int ...
C語言筆記 六 指標 一
記憶體模型 常量區棧區 區常量指標 和 指標常量 根據指標指向的位置的不一樣,指標也是有型別。指標定義和使用 include intmain int p 定義乙個int 型別指標,p只能指向int型位址 指標在函式中的簡單應用 用指標在函式中修改變數的值 include void fun1 int ...