国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

基于結(jié)構(gòu)體與指針的詳解

2020-01-26 16:12:53
字體:
供稿:網(wǎng)友
結(jié)構(gòu)指針變量:結(jié)構(gòu)指針變量的說明和使用一個指針變量用來指向一個結(jié)構(gòu)變量
結(jié)構(gòu)指針變量中的值是所指向的結(jié)構(gòu)變量的首地址。通過結(jié)構(gòu)指針即可訪問該結(jié)構(gòu)變量,這與數(shù)組元素的指針和函數(shù)指針的情況是相同的。
結(jié)構(gòu)指針變量說明的一般形式為:
struct 結(jié)構(gòu)名 * 結(jié)構(gòu)指針變量名
例如: struct stu *pstu; 
其訪問的一般形式為:
(*結(jié)構(gòu)指針變量).成員名 : (*pstu).num
或為:
結(jié)構(gòu)指針變量->成員名  :pstu->num
應(yīng)該注意(*pstu)兩側(cè)的括號不可少, 因為成員符“.”的優(yōu)先級高于“*”。如去掉括號寫作*pstu.num則等效于*(pstu.num),這樣,意義就完全不對了。 
結(jié)構(gòu)變量.成員名
(*結(jié)構(gòu)指針變量).成員名
結(jié)構(gòu)指針變量->成員名
這三種用于表示結(jié)構(gòu)成員的形式是完全等效的。
結(jié)構(gòu)數(shù)組指針變量:結(jié)構(gòu)指針變量可以指向一個結(jié)構(gòu)數(shù)組, 這時結(jié)構(gòu)指針變量的值是整個結(jié)構(gòu)數(shù)組的首地址。 結(jié)構(gòu)指針變量也可指向結(jié)構(gòu)數(shù)組的一個元素,這時結(jié)構(gòu)指針變量的值是該結(jié)構(gòu)數(shù)組元素的首地址。
設(shè)ps為指向結(jié)構(gòu)數(shù)組的指針變量,則ps也指向該結(jié)構(gòu)數(shù)組的0號元素,ps+1指向1號元素,ps+i則指向i號元素。 這與普通數(shù)組的情況是一致的。
復(fù)制代碼 代碼如下:

#include <stdio.h>
int main(void)
{
    int i;
    struct student
    {
        long int num;
        int      age;
        char*    name;
    }st[3]={{198,19,"zhangsan"}, {199,18,"lisi"},{200,19,"wangwu"}};  
    struct student*   p;
    p=st;
    printf("/n/n    NO.    age    name   /n");
    for(  ;p<=st+2;p++)
        printf("  %ld    %d   %s/n",p->num,p->age,p->name);
    getch();
    printf("/n/n    NO.    age    name   /n");
    for( p=st ;p<=st+2;p++)
       printf("  %ld    %d   %s/n",(*p).num,(*p).age,(*p).name);
    getch();
    return 0;
}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 临海市| 曲沃县| 中江县| 陆河县| 勃利县| 赤水市| 鲁甸县| 浦东新区| 洪雅县| 泰顺县| 莆田市| 东山县| 洛隆县| 武宣县| 通化市| 陇川县| 温州市| 阳朔县| 酒泉市| 灌南县| 洪雅县| 绥阳县| 鲁甸县| 平武县| 龙游县| 韶关市| 东阳市| 聊城市| 南陵县| 饶平县| 高陵县| 卢龙县| 无棣县| 会东县| 额济纳旗| 邯郸县| 子长县| 东莞市| 泽州县| 高雄县| 镇宁|