c语言中的结构体

1、结构体的声明
(1)结构体的关键词是struct
第一种声明

struct Point{
  int x;
  int y;
}; //第一种声明方法

第二种声明

struct Point{
  int x;
  int y;
}p1,p2;

第三种声明

struct {
  int x;
  int y;
}p1,p2;

2、结构体定义变量
在C++语言中类的成员变量可以在类中进行初始化,但是C语言的结构体是不能在结构体中对变量进行初始化,只能在结构外进行初始化。
定义变量

struct Point p1={11,12};

除此之外结构体中的变量还有float,double,char,结构体
结构体之间的赋值

struct Point p3=p1;
//or
struct Point p3;
p3=p1;

结构体成员变量是如何访问的

struct Point p1={11,12};
//用“.”运算符进行访问
printf("p1的值是:%d,%d",p1.x,p1.y);
//用指针访问结构体的变量
struct *p=&p1;
printf(p1的值是:%d,%d",p->x,p->y);
代码.png
运行结果.png

结构体做参数
数组可以做参数传递的是地址,而结构体做参数只是传递值,主函数调用函数结果没有发生改变

struct A{
  int i;
};
A a;
void func1(struct A p)
{
  printf("%d\n",p.i);
  p.i=44;
  printf("%d\n",p.i);
}
void func2(struct A *p)
{
  printf("%d\n",p->i);
  p->i=66;
  printf("%d\n",p->i;
}
int main()
{
  a.i=33;
  strcut A *pt;
  pt=&a;
  func1(a);
  func2(&a);
  func2(pt);
  return 0;
}
结构体做参数.png
结构体做参数运行结果.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,541评论 1 51
  • 原文地址:C语言函数调用栈(一)C语言函数调用栈(二) 0 引言 程序的执行过程可看作连续的函数调用。当一个函数执...
    小猪啊呜阅读 4,721评论 1 19
  • C++文件 例:从文件income. in中读入收入直到文件结束,并将收入和税金输出到文件tax. out。 检查...
    SeanC52111阅读 2,866评论 0 3
  • 重庆:早上在神经回路时间按时起床,晨练早餐习字完美完成,9.30出发去解放牌修剪头发,理发师Jason因为每天站立...
    温柔如春风阅读 109评论 0 0
  • 杨七是和张敏换的座位,才成为了我右面的同桌。不用说,这绝对是老师的杰作。 至于同桌还分左面右面这个问题,我要说...
    长歌雾后阅读 280评论 2 1