C語言結構體與指標難點

2021-09-28 21:18:49 字數 2173 閱讀 7257

#include #include #include int main()  stu1 = , *pstu = &stu1;

//讀取結構體成員的值

printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", (*pstu).name, (*pstu).num, (*pstu).age, (*pstu).group, (*pstu).score);

printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", pstu->name, pstu->num, pstu->age, pstu->group, pstu->score);

// printf("%s的學號是%d,年齡是%d,在%c組,今年的成績是%.1f!\n", pstu.name, pstu.num, pstu.age, pstu.group, pstu.score);go語言可以在指標直接訪問元素duck typing

// 陣列名代表首位址

int a[5]= ;

// printf("fffffff%d----%d",a,*a);

printf("fffffff%d----%d",a+2,*(a+2));//如此處理的主要是保證資料在空間的有效,否則拆分的資料毫無含義,在整個演算法上都不存在必要性

printf("fffffff%d----%d\n",a,*a);

//當整數值轉換為位址偏移量時,編譯器假設只有相同大小的記憶體位置位於原始位址和位址加上偏移量之間。

//此假設對數組成員有效。根據定義,陣列是一系列相同型別的值;其元素位於連續的記憶體位置。但是,除了陣列元素之外的任何型別的儲存都不能保證由相同型別的識別符號填充。也就是說,空白可以出現在記憶體位置之間,甚至是同一型別的位置之間。因此,除了陣列元素之外的任何值的位址的加減結果都是未定義的。

int array[20]= ;

int *ptr=array;

for(int i=0; i<20; i++)

// char ap[20]=" you_are_a_girl";

// char *p=ap;

// char **ptr=&p;

// //printf("p=%d\n",p);

// //printf("ptr=%d\n",ptr);

// //printf("*ptr=%d\n",*ptr);

// printf("**ptr=%c\n",**ptr);

// ptr++;

/////測試對指定記憶體位址操作

int aa[10] =;

printf("a[0]%d\n",aa[0]);

printf("a[1]%d\n",aa[1]);

printf("%d\n",&aa); //函式名==首位址&aa等價於aa

int *pa =(int *)&aa;//根據列印的資料位址,資料位址轉換為指標變數位址........

printf("pa--%d\n",*pa);//*加指標變數 取指標指向記憶體變數的值

int x=*pa;

pa++;

int zz=(*pa)+3;

printf("zz%d\n",zz);

int *pa1 =(int *)&aa;

int y=*pa1;//此處不好理解按照一般思路*pa是記憶體位址

printf("??%d\n",x);

printf("??%d",y);

return 0;

}

tom的學號是12,年齡是18,在a組,今年的成績是136.5!

tom的學號是12,年齡是18,在a組,今年的成績是136.5!

fffffff6356680----1fffffff6356688----66fffffff6356680----101

2345

6789

1011

1213

1415

1617

1819

a[0]22

a[1]0

6356560

pa--22

zz3??22

??22

process returned 0 (0x0)   execution time : 0.869 s

press any key to continue.

c語言 結構體與指標

1.建立結構體 2.結構體成員賦值方式 3.結構體與指標 4.結構體的使用,訪問成員方式 指標變數 成員名方式 pst age pst所指向的結構體變數中的age這個成員 結構體變數名.成員名方式 st.age st這個結構體變數所指向的age這個成員 include include struct ...

結構體指標,C語言結構體指標詳解

結構體指標,可細分為指向結構體變數的指標和指向結構體陣列的指標。前面我們通過 結構體變數名.成員名 的方式引用結構體變數中的成員,除了這種方法之外還可以使用指標。前面講過,student1 表示結構體變數 student1 的首位址,即 student1 第乙個項的位址。如果定義乙個指標變數 p 指...

C語言結構體與結構體指標的使用

c語言結構體 struct 是由一系列具有相同型別或不同型別的資料構成的資料集合。說的通俗一點就是乙個集合。c語言是一門面向過程的程式語言,而結構體的使用在某些層次上跟物件導向有點異曲同工之處了。下面回歸正題,學習一下結構體以及結構體指標的知識。一 結構體變數的定義和初始化 1 首先我們來看一下結構...