您的位置:首页 > 其它

结构体讲解(二)---指向结构的指针

2015-09-17 11:21 127 查看
<pre name="code" class="objc"><pre name="code" class="objc"><pre name="code" class="objc">friends.c   程序

#include<stdio.h>
#define LEN 20
struct names{                       //   建立 姓名   , shen    hui       ,   cheng   san
char first[LEN];
char last[LEN];
};

struct   guy {
struct names handle;         //        handle  英文意思这里是: 对象
char favfood[LEN];          //   喜欢食物
char job[LEN];              //   工作
float  income;             //   收入

};

int main(void)
{
struct guy fellow[2]={                            //   fellow 意思是 同伴,同类的
{
{" shen "," hui"  },
" fish ",
" engineer ",
6000

},

{ {" cheng "," san "  },
" vegetable ",
" writer  ",
8000
}

};

struct   guy * him ;                       // 这是一个指向 结构的指针
printf("address #1 : %p #2 : %p\n",&fellow[0],&fellow[1] );     //   结构数组每个元素的首地址
him=&fellow[0];

printf("pointer #1 : %p #2 : %p\n",him,him+1);             //   这里指针+1 ,应该是 第二个元素的地址吧,也就是 cheng san ,是的。

printf("him->income is $%.2f: (*him).income is $%.2f \n",
him->income ,(*him).income );                     //  6000     6000

him++;
printf("him->favfood is %s: him->handle.last is %s \n",

him->favfood, him->handle.last );        //   vegetable    san
return 0;

}






声明和初始化指针结构:

struct guy *him ;

him= &fellow[0];

使用指针访问成员

printf("him->income is $%.2f: (*him).income is $%.2f \n",

him->income ,(*him).income ); // 6000 6000

记住:

倘若 him==&barney ;

那么

barney.income == (*him).income== hin->income ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: