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

<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 ;


























  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值