参考中国大学MOOC 浙江大学翁恺C语言程序设计在线课程

1.结构类型和结构变量

先声明结构类型才可以定义该类型的结构变量

#include<stdio.h>
#include<stdlib.h>struct position{        //声明一种结构类型int x;int y;
};int main()
{struct position e;    //定义一个结构变量return 0;
}

也可以这么写:

#include<stdio.h>
#include<stdlib.h>typedef struct position{        //声明一种结构类型(typedef拥有给予关键词新名称的作用)int x;int y;
}pos;int main()
{pos e;    //定义一个结构变量return 0;
}

也可以不指出结构类型的名称

#include<stdio.h>
#include<stdlib.h>typedef struct {        //声明一种结构类型int x;int y;
}pos;int main()
{pos e;    //定义一个结构变量return 0;
}

2.结构与函数

#include<stdio.h>
#include<stdlib.h>typedef struct position{int x;int y;
}pos;pos GetStruct(void)
{pos temp;scanf("%d", &temp.x);scanf("%d", &temp.y);return temp;
}
void OutStruct(pos a)
{printf("(%d,%d)\n", a.x, a.y);
}int main()
{pos example;example = GetStruct();OutStruct(example);return 0;
}

这样就定义了一个函数来帮助读入和输出这个结构变量的内容;但是使用指针(->)可以使其更加高效。

(*p).x == p -> x    //p是指向结构变量的一个指针变量

#include<stdio.h>
#include<stdlib.h>typedef struct position{int x;int y;
}pos;void GetStruct(pos *temp)
{scanf("%d", &temp -> x );scanf("%d", &temp -> y );
}void OutPut(const pos *temp)
{printf("(%d,%d)\n", temp -> x, temp -> y );
}int main()
{pos e;GetStruct(&e);OutPut(&e);return 0;
}

3.结构中的结构,结构数组

注意->的使用方法。

#include<stdio.h>
#include<stdlib.h>typedef struct position{int x;int y;
}pos;typedef struct rectangle{pos a;pos b;
}rec;void GetStruct(rec *temp)
{scanf("%d", &temp -> a.x  );scanf("%d", &temp -> a.y  );scanf("%d", &temp -> b.x  );scanf("%d", &temp -> b.y  );
}void OutPut(const rec *temp)
{printf("(%d,%d)\n", temp -> a.x, temp -> a.y );printf("(%d,%d)\n", temp -> b.x, temp -> b.y );
}int main()
{rec e;GetStruct(&e);OutPut(&e);return 0;
}

正如整型和double型一样,一种结构类型的变量也可以定义数组当需要一个结构类型的数组变量时只需要用和定义一般数组相同的方法就行了。

【C语言】结构和指针相关推荐

  1. C语言结构体指针的使用方法

    1.首先定义一个结构体,给它取别名: typedef struct node{ struct node * next://指向下一节点 int data://数据域 }pnode,*linklist; ...

  2. python 结构体指针_C语言结构体指针(指向结构体的指针)详解

    当一个指针变量指向结构体时,我们就称它为C语言结构体指针的定义形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: //结构体 struct stu{ char *nam ...

  3. C语言结构体指针(指向结构体的指针)详解

    当一个指针变量指向结构体时,我们就称它为结构体指针.C语言结构体指针的定义形式一般为: struct 结构体名 *变量名; 下面是一个定义结构体指针的实例: //结构体 struct stu{ cha ...

  4. c语言+结构体指针初始化,c语言结构体指针初始化===

    c语言结构体指针初始化 今天来讨论一下C中的内存管理. 记得上周在饭桌上和同事讨论C语言的崛起时,讲到了内存管理方面 我说所有指针使用前都必须初始化,结构体中的成员指针也是一样 有人反驳说,不是吧,以 ...

  5. C语言结构体指针强转

    文章目录 1.结构体指针强转 2.结构体指针强转在链表中的使用 3.结构体指针强转在链表中使用出现的问题 1.结构体指针强转 C语言中结构体无法进行强转,但是结构体指针是可以进行间接强转的 eg: 先 ...

  6. c语言结构体指针使用方法,C语言结构体指针的使用方法

    1.首先定义一个结构体,给它取别名: typedef struct node{ struct node * next://指向下一节点 int data://数据域 }pnode,*linklist; ...

  7. C语言 | 结构体指针

    C语言指向结构体变量的指针 在C语言中,指向结构体对象的指针变量既可以指向结构体变量,也可指向结构体数组中的元素. 指针变量的基类型必须与结构体变量的类型相同. C语言中允许 (*p).num用p-& ...

  8. c语言结构体指针初始化

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  9. 结构体自定义指针函数c语言,C语言结构体指针在函数调用中的使用

    接触嵌入式编程已经有一段时间了,平时的编程中会经常遇到结构体,但是就直接拿来用了,没有注意过细节,结果遇到问题就纠结了.趁这个机会,研究了一下C语言的结构体和结构体指针,顺便总结一下! 注:关于结构体 ...

  10. c语言指针结构体心得,C语言结构体指针陷阱

    一."."和"->"区别: 当声明一个结构体时,因为自动分配了结构体的内存空间,所以可以直接用"."访问相应结构体内的存储单元,比如: ...

最新文章

  1. 美国五大科技巨头的人工智能竞赛
  2. IDEA无法在service层用注解方式注入mapper
  3. okhttp 工具类_HR常用的人才测评工具 ~ 团测系统
  4. Python编程基础:第五十九节 守护线程Daemon Threading
  5. 计算机科学基本理论,计算机科学的基础知识.ppt
  6. 太平鸟上云 推动中国服饰行业新零售转型
  7. AI赋能红外测温助力精准防控疫情……
  8. 服务器ip直接访问php怎么写,php - 如何实现用公网ip访问到服务器上的网页?
  9. 文件md5码怎么生成_Linux 系统文件校验方法--MD5,SHA1,PGP,SHA256,SHA512
  10. chrome下载地址
  11. Python数据分析教程:Numpy 中不得不知的4个重要函数
  12. Generation I--组合数和数学
  13. C++ Log4Cpp 使用
  14. SLF4J user manual
  15. ios 测试证书配置
  16. 【Bat】内外网切换
  17. eclipse osgi_Eclipse通过提议的OSGi容器Kura支持M2M产品组合
  18. MCU实现低功耗注意事项
  19. Python【二手车价格预测案例】数据挖掘
  20. 自制linux桌面环境,四招教你打造轻型Linux桌面环境

热门文章

  1. python做界面小软件_PySimpleGUI图形界面绘制及办公自动化小软件的制作
  2. python字典与yaml文件转换
  3. jieba自定义分词规则与多进程切词
  4. 下载知网Hownet中文信息结构数据
  5. 此上下文中不允许函数定义。_彻底搞懂上下文this,轻松应对,一面就过!!!...
  6. html代码大全贴音乐,网页音乐代码大全
  7. java滑动窗体动画_java – 为布局滑入和滑出动画
  8. Kubernetes-保障集群内节点和网络安全
  9. 零元学Expression Blend 4 - Chapter 7 什麽?影片不再是印象中的方框框!!!看Blend 4如何把影片镶入字里...
  10. [BAT] 执行xcopy命令后出现Invalid num of parameters错误的解决办法