c语言中的结构体

2016-07-14  本文已影响68人  c与php

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
上一篇 下一篇

猜你喜欢

热点阅读