陣列指標 結構體指標

2021-10-14 15:23:15 字數 1390 閱讀 8136

指向指標結構體

#include

#include

int main()

;struct student stu_1;//定義struct student型別的變數stu1

struct student *p;//定義指向struct student型別資料的指標變數p

p=&stu_1;//p指向stu1

stu_1.num=10101;//對結構體的變數成員賦值

strcpy(stu_1.name,「lilin」);//用字串複製函式給stu1.name賦值

stu_1.***=『m』;

stu_1.score=89.5;

printf(「no.:%ld\nname:%s\n***:%c\nscore:%5.1f\n」,stu_1.num,stu_1.name,stu_1.***,stu_1.score);//輸出結果

printf(「no.:%ld\nname:%s\n***:%c\nscore:%5.1f\n」,(*p).num,(*p).name,(*p).***,(*p).score);

return 0;

}陣列指標

#include

using namespace std;

int main()

{int a[10],p;

p=&a[1];cout//p=&a[0]; //p指向陣列的首位址

//p=a; //p指向陣列的首位址

//p=a+4;

//coutfor(int i=0;i<10;i++)

{//cout<<*(a+i);

coutvoid input(int *a,int n);

二維陣列…

乙個陣列,若其元素均為指標型別元素,稱為指標陣列

表示方法

方式一int v[2][10]

int (a)[10]=v

//一定要加上括號,因為的優先順序高於

//p=a 相當於p&a[0],也就是指向第乙個陣列a[0]的首位址

方式二int *p=a[0]=&a[0][0]=*a;

//指標p表示的是二維陣列第乙個元素a[0][0]的首位址

int *p=&a[0][0];//陣列元素的首位址p相當於&a[0][0]

a[i]+j==&a[i][j]

&a[i][0]+j==&a[i][j]

*(a+i)+j==&a[i][j]

a==&a[[0]

a[0]&a[0][0]

a&(&a[0][0])

對於二維陣列a[m][n],如果將&a[0][0]賦給指標變數p的話,那麼p訪問的二維陣列元素a[i][j]的公式就是

p+i*n+j==&a[i][j]

結構體指標陣列

struct h a 100 b,c 3 d a是乙個結構體陣列,已經有100個節點了。不需要再分配空間了。b是乙個結構體變數,也已經有空間了,就和int b 已經有空間了一樣。c是乙個指標陣列,c也已經有空間了,有3個元素,但是這三個元素是還沒有分配空間的指標,所以要用malloc分別為他們分配記...

結構體 指標 陣列

若我們用 0x9999 來標記記憶體位址,則 0x9999 表示該位址記憶體中儲存的數值 變數int a a 0x9999 1 a 0x9999 指標int a a 0x8888 0x9999 a 0x8888 0x9999 1 a 0x8888 結構體變數 struct mystruct s s ...

結構體指標和結構體陣列

struct ha 100 b,c 3 d 結構體指標其實是乙個指標,它儲存的是指向某個結構體的 位址 所以結構體指標陣列儲存的其實是指向一組結構體的 位址 陣列,它本身並不包含結構體的具體內容 沒有被分配記憶體 所以當用到他們時,要麼重定向,比如 d b 讓d指向b,d儲存的是b的位址,這樣就能通...