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