美文网首页
结构体与结构体指针

结构体与结构体指针

作者: 贝克街的猫大哥呀 | 来源:发表于2017-08-20 23:49 被阅读0次

C中的结构体,对应JAVA中的类的概念。也就是一些数据结构的集合,形成一种新的数据结构。

见一个例子

struct Man{

   char* name;

   int age;

   int(*func)();

};

void main(){

   //struct Man m1 = {"jack",21};

  struct Man m1;

   m1.name = "watson";

   m1.age = 23;

   printf("%s",m1.name);

   system("pause");

}

用struct来创建一个结构体,结构体中,可以是指针,可以是基本类型,也可以是函数,在main中,有两种方式可以给结构体赋值,一般用第二种,比较通顺。第一种有点JS有意思。

一些简写:

struct Man{

   char* name;

   int age;

}m1;

void main(){

   m1.name = "watson";

   m1.age = 23;

   printf("%s",m1.name);

   system("pause");

}

也就是说,在结构体的申明的时候,直接给了一个变量m1,这个m1,就相当于是一个实例了。可以直接用!

struct Man{

   char* name;

   int age;

}m1,m2={"jack",20}

void main(){

   m1.name = "watson";

   m1.age = 23;

   printf("%s",m1.name);

   system("pause");

}

这种写法,就是在申明的时候,同时申明了两个变明量m1,m2,m2在申明的时候直接赋值了。

还有一种写法,匿名结构体

struct{

  char* name;

   int age;

   int(*func)();

}m1;

void main(){

   m1.name = "watson";

   m1.age = 23;

   printf("%s",m1.name);

   system("pause");

}

即是根据变量名来用! 就相当于,只有m1可以用。这样写可以有效的控制变量的个数。相当于单例

再来一种,就是结构体里,包含结构体--其实就是JAVA里的,实体类里又含有另外的实体类,一样的东西

struct{

   char* name;

   int age;

   struct Teacher {

    char name[20];

}t;

}m1;

void main(){

   m1.name = "watson";

   m1.age = 23;

   strcpy(m1.t.name,"json");

   printf("%s",m1.name);

   system("pause");

}

就说一点,这里的结构体中,直接是用char name[20];  如果是这样写,而不是写在char *name的话,赋值就要麻烦点,就要用 strcpy(m1.t.name,"json"); 来完成赋值

现在讲讲结构体指针

例子如下

struct Student{

   char* name;

   int age;

};

void main(){

   struct Student m1;

   m1.name = "watson";

   m1.age = 23;

   strcpy(m1.t.name,"json");

   struct Student *p = &m1;

   printf(p->name);

   system("pause");

}

关键如下 struct Student *p = &m1; 先申明一个指针,然后将对象的对址赋值

这样就可以直接    p->name 来获得值,是不是很方便宜?

当然,也可以 (*p).name 来获得值,也是没问题的,和以前讲的一个逻辑。

相关文章

  • C语言-5、结构体

    写法一 写法二 写法三 结构体指针 结构体指针 与 动态内存开辟 结构体的数组 结构体与结构体指针 取别名 取别名...

  • C语言20 结构体指针

    C语言20 结构体指针 探测结构体指针的特性 ++、-- 加法与减法 指针相减 使用结构体指针 结构体指针一定要指...

  • 结构体与结构体指针数组

    1.结构体定义与使用。 2.结构体指针 与 动态内存开辟。 3.结构体的数组。 4.结构体与结构体指针 取别名。 ...

  • Day10

    指针 指针与函数 练习回调函数 结构体 基本概念 结构体变量初始化 定义结构体变量 结构体变量作用域结论; 和变量...

  • C语言基础及指针⑧文件IO

    接续上篇C语言基础及指针⑦结构体与指针在结构体与指针中 , 我们了解到结构体与java中的类相似 , 也是一种自定...

  • 结构体与结构体指针

    C中的结构体,对应JAVA中的类的概念。也就是一些数据结构的集合,形成一种新的数据结构。 见一个例子 struct...

  • 6.结构体相关

    一 C 结构体和结构体指针 eg1: 一 结构体里面定义函数 通过结构体指针访问结构体里面定义的函数。 eg2:

  • 结构体的基本操作

    结构体定义和初始化 结构体变量相互赋值 结构体数组 结构体嵌套一级指针 结构体嵌套二级指针 结构体偏移量 联合体 ...

  • 函数指针,联合体,枚举,结构体和结构体指针

    函数指针 联合体 枚举 别名 结构体 结构体指针

  • Go语言之结构体指针

    结构体本身属于值类型,可以通过指针操作结构体,编程引用类型的数据,通过new()创建指针 结构体指针

网友评论

      本文标题:结构体与结构体指针

      本文链接:https://www.haomeiwen.com/subject/tedqdxtx.html