C語言隨筆(六)指標

2021-10-07 03:28:45 字數 2043 閱讀 5568

指標,就是指記憶體位址,指標變數是用來存放記憶體位址的變數,不同型別的指標變數所占用的儲存單元長度是相同的,而存放資料的變數因資料的型別不同,所占用的儲存空間長度也不同。有了指標以後,不僅可以對資料本身,也可以對儲存資料的變數位址進行操作。

定義指標**如下:

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 ...