c语言之结构体

一、定义

    我认为结构体就是可以让你定义新类型的一个接口。初学者经常说什么结构体类型什么的

    其实都是错的,当你定义一个新的类型时这个类型的名字就是你自己起的名字(所以不要再

    讲结构体类型了,之前我也犯过这样的错)。

二、使用

   1、定义一个结构体(在使用结构体时我建议和typedef一起使用)

        typedef struct  Teacher

        {

            int age ;

            char name[10];

         }Teacher; 

    这个时候Teacher就和int,char一样,可以用来定义变量,指针,函数例如Teacher A;

     Teacher *p = NULL等。

    那为什么要和typedef一起用那?

    不想写struct,哈哈。

    比较一下当你没用typedef时,你定义变量是这样的 struct Teacher a;总之就是方便

    使用和理解。

2、结构体的使用

    接着上面讲,来说说没有用typedef时结构体的使用,定义新类型

    struct Teacher 
    {
int age ;
char name[10];

     };

    定义一个Teacher类型的变量struct Teacher A;

    对A进行赋值有两种

   (1)、第一种,在定义时直接赋值

         struct Teacher A = {20,"lucifer"};

   (2)、第二种,定义完然后赋值

        struct Teacher A;

        A.age = 20;

       strcpy(a.name,"lucifer");

  3、讲讲结构体指针的使用

        Teacher *p = NULL;

        p = &A;

        p->age = 20;

        strcpy( p->name,"lucifer");

        这里->这个符号是结构体指针专用的相当于(*p).可能也是为了书写方便。

  三、结构体的特殊用法

        大家都知道在结构体里面是不能调用函数的,但是却是可以调用函数指针的那么这

        也就意味着c语言也可以面向对象,此时struct可以认为是c++里面的class但是和

        class不同的是它的所有变量全是public。

        例子

        typedef struct Teacher 
       {
int age ;
char name[10];
void (*t)(struct Teacher *p);

     }Teacher;

      void fuction(Teacher *p)
      {
p->age = 30;

      }

    int main()
   {
Teacher a;
Teacher *p = &a;
a.t= fuction; 
a.t(p);
printf("%d",a.age );

   }

  通过函数来修改类age的值

!欢迎大家指出不足之处




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值