Struct结构体的使用学习
2015-10-09 09:04
435 查看
Struct结构体的使用
结构体的声明struct _Person { char *name; int age; double height; };
struct _Person p1;
每次使用结构体的时候都要struct _Person ,比如struct _Person p1={0};sizeof(struct _Person ); 太麻烦。
2、typedef int zhengshu;可以给int取一个别名zhengshu。
因此也可以用typedef struct _Person Person;把Person定义为struct _Person 的别名
3、当然最常用的简化写法:
typedef struct _Person { int age; char* name; } Person;
4、结构体的赋值
Person p1={0};
p1.name = “全智贤”;
p1.age=30;
Person p2 = p1;
printf(“%d,%d\n”,&p1,&p2);
printf(“%s的年龄是%d\n”,p1.name,p1.age);
p1和p2的地址不一样,结构体赋值是“复制一份”
5、为了避免内存占用,一般只用一份,因此通过结构体指针传递:
Person *p2 = &p1;
printf(“%s的年龄是%d\n”,p2->name,p2->age);
6、注意:对于结构体指针,取成员要使用->,而不是“.”
#include <stdio.h> typedef struct _Person { char *name; int age; } Person; int main(int argc, char *argv[]) { Person p1 ={0}; p1.name= "aaaa"; p1.age= 30; printf("%s,%d\n",p1.name,p1.age); Person p2 = p1;//创建一个Person结构体内存 //复制p1的内容 p1.age = 300; printf("%s,%d\n",p2.name,p2.age); printf("%d,%d\n",&p1,&p2); Person* p3 = &p1; printf("%d,%d\n",p3,&p1); printf("%s,%d\n",p3->name,p3->age);//对于结构体指针 //取成员的值要使用-> p1.age= 100; printf("%s,%d\n",p3->name,p3->age); return 0; }
相关文章推荐
- 软件测试分类基本概念
- nodeJS压缩图片/JS/CSS
- eclipse中tomcat在debug模式下有时会自动跳转到processWorkerExit(w, completedAbruptly);中的问题
- jQuery的发展史,你知道吗?
- 第四周项目3 单链表应用(3)
- 第六周 项目3-括号的匹配
- 修改产品的group price的值,修改为如下形式: 41.78 => 41.95 55.88 => 55.95
- WampServer下如何实现多域名配置
- 浅入深出的理解了盒模型,哈哈哈
- 勤奋,加快学习进度!
- 第四周项目1 建立单链表
- 项目5 -- 后缀表达式
- jQuery Mobile基础07----jQuery Mobile Widgets(2)-listview(列表视图
- 第4周 项目2-建设“单链表”算法库
- iOS 8 新特性介绍
- linux 如何显示和删除隐含文件
- JavaScript实现九九乘法表
- 构建高并发高可用的电商平台架构实践
- [书目20151009]拆掉思维里的墙:原来我还可以这样活
- 如何快速确定文件或文件夹在网络驱动器上的绝对地址