博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言第二天(结构体)
阅读量:6118 次
发布时间:2019-06-21

本文共 1746 字,大约阅读时间需要 5 分钟。

  hot3.png

声明/使用结构类型

// 声明,放在函数外面代表全局的struct date{    int year;    int month;    int day;};// 使用,结构可以赋值给其他结构变量,可以取地址,也可以做函数参数// 1、struct date tody;today.year = 2018today.month = 12;tody.day = 23;// 2、struct date today = {2018, 12, 23};// 3、struct date today = {.monty = 12, .year = 2018}; // day会默认给一个0// 结构指针struct date *p = &today;// 定义结构时同时定义两个变量,p1和p2中会有x和ystruct point{    int x;    int y;} p1, p2;

结构与函数

// 和普通变量一样,和数组不一样,数组是一个指针int number(struct date d);// 结构可以做函数的返回值#include 
#include
struct point getStruct(struct point p);struct point { int a; int b;};int main(int argc, char **argv) { struct point x; struct point y = getStruct(x); printf("%d", y.a); // 1 printf("%d", y.b); // 2}struct point getStruct(struct point p){ p.a = 1; p.b = 2; return p;}// 结构指针作为参数(推荐),用->表示指针所指的结构变量中的成员struct date today;struct date *p = &today;(*p).month = 12;p->month = 12; // 推荐

结构数组

// 定义struct date{    int a;    int b;    int c;};// 声明/使用struct date dates[] = {    {1, 2, 3}, {4, 5, 6}};dates[0].a;

结构中的结构

// 定义struct point{    int x;    int y;};struct rect{    struct point pt1;    struct point pt2;};// 使用struct rect r;r.pt1.x = 1;r.pt1.y = 3;r.pt2.x = 2;r.pt2.y = 4;// 使用2struct rect *p = &r;p->pt1.x = 5; // 等价 r.pt1.x = 5

结构中的结构的数组

// 定义struct point{    int x;    int y;};struct rect{    struct point pt1;    struct point pt2;};struct rect rects[] = {    {
{1, 2}, {3, 4}}, {
{5, 6}, {7, 8}}};// 使用rects[0].p1.x = 1;

自定义数据类型

// typedef 关键字,声明新的类型的名字// inttypedef int int64_t;int64_t i = 100000;// 字符串,Strings是10个字符串的数组typedef *char[10] Strings;// 在定义结构体时使用typedef struct dates{    int a;    int b;} Date;// 或者typedef struct{    int a;    int b;} Date;Date d = {1, 2};

 

转载于:https://my.oschina.net/xiaoerit/blog/2992140

你可能感兴趣的文章
coco2d-x 基于视口的地图设计
查看>>
C++文件读写详解(ofstream,ifstream,fstream)
查看>>
Android打包常见错误之Export aborted because fatal lint errors were found
查看>>
Tar打包、压缩与解压缩到指定目录的方法
查看>>
新手如何学习 jQuery?
查看>>
配置spring上下文
查看>>
Python异步IO --- 轻松管理10k+并发连接
查看>>
mysql-python模块编译问题解决
查看>>
Oracle中drop user和drop user cascade的区别
查看>>
【Linux】linux经常使用基本命令
查看>>
Java 内存区域和GC机制
查看>>
更新代码和工具,组织起来,提供所有博文(C++,2014.09)
查看>>
HTML模块化:使用HTML5 Boilerplate模板
查看>>
登记申请汇总
查看>>
Google最新截屏案例详解
查看>>
2015第31周一
查看>>
2015第31周日
查看>>
在使用EF开发时候,遇到 using 语句中使用的类型必须可隐式转换为“System.IDisposable“ 这个问题。...
查看>>
Oracle 如何提交手册Cluster Table事务
查看>>
BeagleBone Black第八课板:建立Eclipse编程环境
查看>>