久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

C語言:結構體與結構體指針

作者:xuchen   來源:xuchen的blog   點擊數:  更新時間:2014年05月28日   【字體:

1、指向結構體的指針變量:

C 語言中->是一個整體,它是用于指向結構體,假設我們在程序中定義了一個結構體,然后聲明一個指針變量指向這個結構體,那么我們要用指針取出結構體中的數據,就要用到指向運算符“->”.
 
 
舉例說明:
 
 
struct SunLL
{
  int a;
 
 
  int b;
 
 
  int c;
};         
 
struct SunLL  * p;               //定義結構體指針
struct SunLL A = {1,2,3};    //定義一個SunLL類型的變量A
 
 
int x;                                //定義一個變量x
p = &A ;                          //讓p指向A
x = p->a;                       //等價于  x=(*p).a         (*p)表示p指向的結構體變量
 
 
                                      //這句話的意思就是取出p所指向的結構體中包含的數據項a賦值給x
 
                                     //由于此時p指向A,因而 p->a == A.a,也就是1
 
 
2、指向結構體數組的指針變量:
 
 
指向結構體的指針變量也可以指向結構體數組及其元素。
 
 
如果程序如下:
 
 
struct SunLL *p,sun[3];
 
 
p = sun;
 
 
如果假定sun[0]的地址是1000,指針變量p指向結構體數組sun的首地址,由于size of(struct SunLL)的值是6,每個結構體元素占內存空間6個字節,因此p+1指向地址1006,p+2指向地址1012.
 
 
使用指針變量指向結構體變量或結構體數組時,應注意運算符的優先級,在c語言中"()" "[ ]" "->" "."四個優先級相同,具有最高的優先級,其次是”*“ ”++“ ”--“ ”&“四個相同優先級的運算符。如:++P->a的表達式等價于++(p->a)
 
 
(++p)->a先計算++p,p指向sun[1];
 
 
P++->a;則表達式等價于(p++)->a;
 
 
p->a++的表達式等價于(p->a)++;
 
 
3、結構體作為函數參數與結構體指針作為函數參數
 
 
舉例1
 
 
struct st
 
 
{
 
 
int a;
 
 
char b;
 
 
};
 
 
fun(struct st bc)
 
 
{
 
 
bc.a+=5;
 
 
bc.b='A';
 
 
printf("%d,%c\n",bc.a,bc.b);
 
 
}
 
 
main()
 
 
{
 
 
struct st bl;
 
 
bl.a=3;
 
 
bl.b="c";
 
 
fun(bl);
 
 
printf("%d,%c\n",bl.a,bl.b);
 
 
}
 
 
運行結果為:8,A        3,c
 
 
舉例2:
 
 
struct st
 
 
{
 
 
int a;
 
 
char b;
 
 
};
 
 
fun(struct st *bp)
 
 
{
 
 
bp->a+=5;
 
 
bp->b='A';
 
 
printf("%d,%c\n",bc.a,bc.b);
 
 
}
 
 
 
main()
 
 
{
 
 
struct st bl;
 
 
bl.a=3;
 
 
bl.b="c";
 
 
fun(&bl);
 
 
printf("%d,%c\n",bl.a,bl.b);
 
 
}
 
 
運行結果為:8,A        8,A
 
 
總結:
 
 
將結構體變量作為函數參數,是將實參值傳遞給形參,屬于值傳遞。將結構體所有參數傳遞給形參使用,但本身的值不會改變。將指向結構體變量的指針作為實參進行傳遞時,是將結構體變量的地址傳遞給形參,屬于地址傳遞,會改變實際結構體變量的成員值的。
 
關閉窗口

相關文章

主站蜘蛛池模板: www.青青草 | av网址在线播放 | 欧美精品久久久久 | 久久精品一区二区三区不卡牛牛 | 91中文在线| 美女网站视频在线观看 | 国产一级一片免费播放放a 国产黄色大片 | 亚洲一区影院 | 91在线视频免费观看 | 国产成年人视频 | 国产传媒一区二区 | 波多野结衣在线观看一区二区 | 欧美日韩一 | 久国产 | 欧美日韩91 | 永久免费看片在线播放 | 亚洲精品1区 | 午夜性福利 | 性做久久久 | 可以免费看av的网站 | 成人午夜在线 | 亚洲一区二区三区在线视频 | 黄色在线播放 | 久久国产精品免费视频 | 中文字幕一区二区三区视频 | 免费的黄色小视频 | 精品久久影院 | 久草精品视频在线看网站免费 | 国产精品视频免费看 | 久精品视频 | 日韩午夜精品 | 97精品在线观看 | 荤话粗俗h高h重口 | av影片在线观看 | 亚洲日本国产 | 国产www视频 | 久久99免费视频 | www.欧美精品| 欧美在线视频一区二区 | 国产三级在线 | 两性免费视频 |