结构体讲解(二)---指向结构的指针
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 ;
相关文章推荐
- 深入理解mybaits数据源与连接池
- ASP数据库操作方法
- 如何绕过安全狗
- 前端常用功能记录(三)—datatables表格初始化(转)
- android使用selector修改TextView中的字体颜色和背景颜色
- JS最常用 正则表达式2
- Xcode7 网络请求报错:The resource could not be loaded because the App Transport Security policy requir
- Windows 下查看端口号和占用端口号的进程
- 学习WPF之 Binding
- 地图类
- CSS和JQ两种方式实现图片层上显示文字
- api
- (产品贴)百度手机卫士竞品分析报告
- 《Linux C编程从入门到精通》摘选
- Log4jConfigListener动态改变记录级别及实现
- linux 进程、执行方式、程序、编程元素
- 使用java生成二维码(QRCode)
- js-linq.js 从json字符串中按条件查找数据
- 费解费解,求解释
- 我们能给孩子提供什么条件?