iOS 結構體指標

2021-07-09 05:09:50 字數 2241 閱讀 1056

小總結: 什麼型別的指標,就是這個指標指向什麼型別的變數

結構體指標: 就是指向結構體變數的指標

結構體的首位址,就是結構體第乙個成員變數的首位址

stu *p = null;

stu s1 = ;

p = &s1;

printf(「%p\n」,p);

printf( 「%p\n」,&s1 );

printf( 「%p\n」,&s1.name); // 列印的結果相同,都是首位址

printf(「%s\n」,s1.name); // lizongrui

// *p1 等價於 s1

int *p1 = null

int a= 20;

p1 = &a; // 此時,*p1等價於 a

printf(「%d\n」,(*p).age);

// 指向操作符 ->

// -> 前面只能是結構體指標變數,而且必須是指向結構體變數首位址的結構體變數

printf( %d\n」,p->name);

//練習: 1.定義乙個老師結構體

//2.建立結構體變數

//3.建立結構體指標指向結構體變數

//4.判斷如果老師名字的首字元不是大寫,改為大寫,並且將其年齡+10歲;如果首字元是大寫,年齡-10;

/* teacher teacher1 = ;

teacher *t = &teacher1;

if (t->name[0] >= 『a』 && t->name[0] <=』z』 )

else

printf("%s %d %s\n",t->name,t->age,t->hobby);

結構體陣列和指標:

student stu[5] = ,,,

,};陣列名就是指標,指向陣列的首位址,也是陣列首個元素的位址

*stu 等價於 stu[0]

*(stu+1) 等價於 stu[1]

··· ···

訪問陣列中的元素的姓名成員變數

(*stu).name = stu[0].name

( (*stu+1) ).name = stu[1].name

··· ···

使用指標操作符 -> 來訪問陣列中元素

stu-> name = stu[0].name

( stu+1)->name = stu[1].name

( stu+2 )->name = stu [2].name

··· ···

printf( (stu+3)->name,」ajiao」);

printf(「%s\n」,(stu+3)->name);

// 定義乙個指向結構體陣列

student *p1 = stu;

printf(「%s\n」,p1[0].name);

printf(「%s\n」,p1->name);

printf(「%s\n」,(*p1).name); // 輸出結果相同

指標陣列 陣列中的元素都是指標(位址)

int a = 3,b = 4,c = 5,d = 6;

int p1 = &a;// &a 的型別就是 int

int array[4] = ; // 由於陣列中每個元素的型別都是int ,所以陣列的型別也應是int *

printf(「陣列所佔記憶體大小:%lu\n」,sizeof(array));

//訪問陣列中的元素

// 方式一

printf(「%p\n」,array[0]); //由於陣列中的元素位址,所以使用%p.

printf(「%p\n」,&a);

printf(「%p\n」,array[1]);

// 方式二

printf(「%p\n」,*array);

printf(「%p\n」,*(array+1));

// 訪問指標陣列中元素指向記憶體空間裡儲存的值

printf("%d\t",*array[0]);

printf("%d\t",*array[2]);

printf("%d\t",*array[3]);

printf("%d\n",*array[1]);

printf("%d\t",*(*array)); // *array 取出的是位址 **array 才是取出位址所指向的值

printf("%d\t",**(array+1));

結構體指標中包含結構體指標

將c 轉化為c的過程中,一些c 的特性無法使用 類內私有變數在類內公共函式中使用,轉化為c的時候選擇用malloc的方式,申請一段記憶體空間去儲存它,在函式中傳指標形參去操作這些變數。這時候遇到乙個問題,結構體中包含了另乙個結構體的指標,這導致了我malloc的時候,另乙個結構體中的記憶體空間沒有申...

結構體指標

定義結構體 typedef struct str stu t 建立結構體指標,存放某乙個結構體變數的首位址 stu t p2stu null 重新命名結構體指標名 typedef將使得原來申明的結構體變數成為資料型別 typedef stu t p2stu t 建立結構體指標,存放某乙個結構體變數的...

結構體指標

指向結構體型別變數的使用 首先讓我們定義結構體 struct stu 再定義指向結構體型別變數的指標變數 struct stu p1,p2 定義指標變數p 1 p 2,分別指向結構體型別變數。引用形式為 指標變數 成員 例7 2 對指向結構體型別變數的正確使用。輸入乙個結構體型別變數的成員,並輸出。...