c語言資料結構預備知識

2021-10-09 09:29:31 字數 2330 閱讀 3891

1、定義

a. 位址

記憶體單元的編號

從0開始的非負整數

b. 指標

指標就是位址,位址就是指標

指標變數是存放記憶體單元位址的變數

指標的本質是乙個操作受限的非負整數

2、基本型別的指標

int i=10;

int*p =

&i;//等價於int *p; p=&i;

*p=11

;printf

("%d %d"

,i,*p)

;//11 11

總結:

a.如果乙個指標變數(假定為p)存放了某個普通變數(假定為i)的位址,那我們就可以說:「p指向了i」, 但p與i是兩個不同的變數,修改p的值不影響i的值,修改i的值不影響p的值,但是改變*p的值也會改變i的值

b.p等價於i,或者說p可以與i在任何地方互換

c.如果乙個指標變數指向了某個普通變數,則*指標變數就完全等價於該普通變數

注意:a.指標變數也是變數,只不過它存放的不能是記憶體單元的內容,只能存放記憶體單元的位址

b.普通變數前不能加*

c.常量和表示式前不能加&

d.使用*p之前,指標p必須賦初值

int

*p;//p是個指標變數,int *p表示該p變數只能儲存int型別變數的位址

int i=10;

i=*p;

//出錯,p沒初始化不能這樣寫

3、指標和一維陣列

一維陣列名是個指標常量

它存放的是一維陣列第乙個元素的位址

它的值不能被改變

一維陣列名指向的是陣列的第乙個元素下標和指標的關係

a[i] <<==>> *(a+i)

假設指標變數的名字為p

則p+i的值是p+i*(p所指向的變數所佔的位元組數)

指標變數的運算

指標變數不能相加,不能相乘,不能相除

如果兩指標變數屬於同一陣列,則可以相減

指標變數可以加減一整數,前提是最終結果不能超過指標允許指向的範圍

p+i的值是p+i*(p所指向的變數所佔的位元組數)

p-i的值是p-i*(p所指向的變數所佔的位元組數)

p++ <==> p+1

p-- <==>p-1

#include

intchangearray

(int

*p,int len)

}int

main(){

int a[5]

=;int*point=

&a[0];

for(int i=

0;i<

5;i++)

printf

("/n");

changearray

(a,5);

for(int i=

0;i<

5;i++)

printf

("/n");

return0;

4、 如何通過被調函式修改主調函式中普通變數的值

形參為以該變數的型別為型別的指標變數

在被調函式中通過*形參變數名的方式就可以修改主函式相關變數的值

//形參名字是n,型別是int*

intf

(int

*n)int

main()

結構體是使用者根據實際需要自己定義的復合資料型別。

結構體變數不能加減乘除,但可以相互賦值。

struct student

;struct student stu1=

;struct student * ptr;

ptr=

&stu1;

ptr->sid=

1002

;printf

("%d %s %d"

,stu1.sid,stu1.name,stu1.age)

;stu1.name=

"lisa"

;//error

strcpy

(stu1.name,

"lisa"

);

在使用中,我們常用typedef給struct重新命名。

如:

typedef

struct lnodelnode,

*linklist;

相當於

typedef

struct lnode lnode;

typedef

struct lnode* linklist;

C語言 資料結構 預備知識指標

所有的偉大源於乙個勇敢的開始 資料結構預備知識 指標1.指標 是 c語言的靈魂,指標 位址 int p p是指標變數,int 表示該p 變數只能儲存 int型別變數的位址,不能存放別的型別的 int i 10 p i 詳細這兩部操作 1 p 存放了i 的位址,所以我們說 p指向了 i2 p和 i是完...

《資料結構》(c 版)預備知識

a1.數學術語 序列 乙個長度為n的序列是將n個元素按一定的線性順序住址起來,其特點是 1.序列中的元素有固定的順序 2.序列中的元素可以重複。向下取整 在c 中用函式floor實現。向上取整 在c 中用函式ceil實現。取模 取模是對整數的操作,它得到整除後非負的餘數,用a mod b表示,其中b...

資料結構之預備知識

指標是c語言的靈魂 位址 記憶體單元的編號 從零開始的非負整數 範圍 0 ffffffff 0 4g 1 指標 指標就是位址,位址就是指標 指標變數是存放記憶體單元位址的變數 指標的本質是乙個操作受限的非負整數 分類 1.基本型別指標 基本概念 int i 10 int p i 等價於 int p ...