c语言中结构体的三种定义方法

内容纲要

在c语言中定义数组,其中的元素必须是同一类型的。有时候我们需要在一个数组中有多种不同的数据类型共存,但c语言又是面向过程的语言。这样结构体就应运而生了,当然这个先后问题不正确,呵呵,耀骑网络只是为了方便大家好理解,具体语法如下:

#include <stdio.h>

 

//结构体的三种定义方法

 

//定义结构体的第一种方法

void test()

{

struct Person{

int age;

char *name;

float height;

};

struct Person p1={10,”zs”,1.89f};

printf(“age:%d,name:%s,height:%.2f\n”,p1.age,p1.name,p1.height);

}

 

 

//定义结构体的第二种方法

void test1()

{

struct Person{

int age;

char *name;

float height;

} p2={15,”ls”,1.75f};

printf(“age:%d,name:%s,height:%.2f\n”,p2.age,p2.name,p2.height);

}

 

//定义结构体的第三种方法

void test2()

{

struct {

int age;

char *name;

float height;

} p3={35,”ww”,1.95f};

printf(“age:%d,name:%s,height:%.2f\n”,p3.age,p3.name,p3.height);

}

 

//定义结构指针

void test3()

{

struct Person{

int age;

char *name;

float height;

} *p4;

struct Person p5={33,”zl”,1.55f};

p4=&p5;

printf(“age:%d,name:%s,height:%.2f\n”,p4->age,p4->name,p4->height);

}

 

//结构体中定义结构体

void test4()

{

struct Birthday {

int year;

int month;

int day;

};

struct Person{

int age;

char *name;

float height;

struct Birthday bday;

} p6={15,”ls”,1.75f,{2012,9,12}};

printf(“age:%d,name:%s,height:%.2f,birthday=%d-%d-%d\n”,p6.age,p6.name,p6.height,p6.bday.year,p6.bday.month,p6.bday.day);

}

int main(int argc, const char * argv[])

{

 

test();

test1();

test2();

test3();

test4();

return 0;

}

 

发表评论

邮箱地址不会被公开。 必填项已用*标注

4 + 6 =