C语言-结构-笔记
2016-07-20 18:00
246 查看
声明结构的形式:
其中第三种注意区别用typedef的结构:
结构的初始化:用大括号
结构运算:
结构指针:
和数组不同,结构变量的名字并不是结构变量的地址,必须使用&运算符
指向结构的指针:
//第一种,p1 和 p2 都是point里面有x和y的值 struct point{ int x; int y; }; struct point p1,p2; //第二种,一次性使用;p1 和 p2都是一种无名结构,里面有x和y struct{ int x; int y; }p1,p2; //第三种,最常用; struct point{ int x; int y; }p1,p2;
其中第三种注意区别用typedef的结构:
typedef struct point{ int x; int y; }p3; p3 a;//这时p3是代表struct point{ int x;int y;} 所以这里的a其实与上述第三种的p1都是结构变量;
结构的初始化:用大括号
struct date today = {07,13,2014}; struct date thismonth ={.month=7,.year=2014};
结构运算:
p1 = (struct point){5, 10}; // 相当于p1.x = 5; p1.y = 10; p1 = p2; // 相当于p1.x = p2.x; p1.y = p2.y; 数组无法做这两种运算!
结构指针:
和数组不同,结构变量的名字并不是结构变量的地址,必须使用&运算符
struct date *pDate = &today;
指向结构的指针:
struct date{ int month; int day; int year; }myday; struct date *p =&myday; //以下两行相等,第二行是缩写,方便,注意只有指向结构的指针才有这种缩写。 (*p).month =12; p->month =12 ;
相关文章推荐
- Cpp环境【Vijos1947】离散化的区间覆盖问题——强有力的感染法
- 在VS2010上使用C#调用非托管C++生成的DLL文件(图文讲解)
- c++中重复定义解决方法
- visual C++ 2015 编译过程中,error C4996: 'XXXX': 被声明为已否决
- C/C++获取当前系统时间
- C++ time and date
- c 语言位操作
- C++11 unordered_map 无序容器的使用
- C++中的explicit关键字
- C语言 冒泡排序
- c++多个文件中如何共用一个全局变量
- 浅谈C++多态性
- C++ 对象数组释放造成内存泄漏
- UVA 10719-Quotient Polynomial
- 一组精度较高的c++测试间函数
- 122. Best Time to Buy and Sell Stock II
- 大话设计模式01----简单工厂模式
- LintCode-两个链表的和sum
- C++——map
- C语言 选择排序