您的位置:首页 > 其它

结构体

2014-02-04 21:51 387 查看
#include <stdio.h>

#include <string.h>

//struct

//struct Goods

//{

// char name[20];

// float price;

// long amount;

//};

//

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

// struct Goods book;

// strcpy(book.name,"三国演义");

// //printf("len = %ld\n", strlen(book.name));

// book.price = 12.8;

// book.amount = 1000;

//

// printf("name: %s price: %.2f amount: %ld\n",book.name, book.price,book.amount);

//

// return 0;

//}

//声明一个数据类型

//typedef struct Student

//{

// char name[20];

// int age;

// int num;

//}STU;

//

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

//{

// STU stu;

// strcpy(stu.name, "小红");

// stu.age = 12;

// stu.num = 50;

// printf("name: %s\nage: %d\nnum: %d\n", stu.name,stu.age,stu.num);

//

// return 0;

//}

//1.用法一

//typedef unsigned char uint_8;

//typedef unsigned short uint_16;

//typedef unsigned int uint_32;

//typedef unsigned long uint_64;

//

//typedef int int_32;

//

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

//{

// uint_32 a=100;

// printf("a = %d\n", a);

//

// return 0;

//}

//2.给结构体取别名

//3.声明复杂类型

//int (*p)(int,int);

//typedef int (*pfunc)(int,int);//int (*)(int,int)

//

//int add(int a, int b)

//{

// return a+b;

//}

//

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

//{

// pfunc p=add;

// printf("%d\n",p(3,5));

//

// return 0;

//}

//省约结构体名

//常用方法1

//结构体名可以跟数据类型名相同

//typedef struct Student{

// char name[20];

// int age;

//}Student;

//常用方法二

//typedef struct {

// char name[20];

// int age;

//}Student;

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

//{

// struct Student stu={"小红",12};

//

// printf("name = %s, age = %d\n", stu.name,stu.age);

//

// return 0;

//}

//结构体指针

//typedef struct {

// char name[20];

// int age;

//}Student,*PStudent;

//通过-> 运算符访问结构体中的成员变量

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

//{

// PStudent pstu = NULL;

// Student stu={"小华",22};

// pstu = &stu;

//

// printf("name = %s age = %d\n", pstu->name,pstu->age);

// return 0;

//}

//结构体数组

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

//{

// Student *pstu;

// Student stu;

// pstu = &stu;

//

// //scanf("%s%d",stu.name,&stu.age);

// scanf("%s%d",pstu->name,&pstu->age);

//

// printf("name = %s , age = %d\n", stu.name,stu.age);

// return 0;

//}

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

//{

// Student stu[5]={{"小华",12},{"小乐",8},{"小花",10},{"小飞",14},{"小黄",7}};

//

// for (int i=0; i<5-1; i++) {

// for (int j=0; j<5-i-1; j++) {

// if (stu[j].age > stu[j+1].age) {

// Student temp=stu[j];

// stu[j]=stu[j+1];

// stu[j+1]=temp;

// }

// }

// }

// for (int i=0; i<5; i++) {

// printf("%s-----%d\n",stu[i].name,stu[i].age);

// }

//

// return 0;

//}

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

//{

// Student stu[5]={{"小华",12},{"小乐",8},{"小花",10},{"小飞",14},{"小黄",7}};

// PStudent pstu = stu;

//

// for (int i=0; i<5-1; i++) {

// for (int j=0; j<5-i-1; j++) {

// if ((pstu+j)->age > (pstu+j+1)->age) {

// Student temp=*(pstu+j);

// *(pstu+j)=*(pstu+j+1);

// *(pstu+j+1)=temp;

// }

// }

// }

// for (int i=0; i<5; i++) {

// printf("%s-----%d\n",(pstu+i)->name,(pstu+i)->age);

// }

//

// return 0;

//}

//结构体嵌套

// 写法一

//typedef struct {

// char name[20];

// int age;

// struct Date

// {

// int year;

// int month;

// int day;

// }date;//声明数据类型的时候直接声明变量

// char sex;

//}Employer;

//写法二

//typedef struct Date

//{

// int year;

// int month;

// int day;

//}Date;

//

//typedef struct {

// char name[20];

// int age;

// Date date;

// char sex;

//}Employer;

//

//

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

//{

// Employer xiaohua={"小华",12,{2014,12,4},1};

// printf("name:%s age:%d %d年%d月%d日,性别:%d\n",xiaohua.name,xiaohua.age, xiaohua.date.year,xiaohua.date.month,xiaohua.date.day, xiaohua.sex);

//

//

// return 0;

//}

//声明结构体类型

//struct Student{

// char name[20];

// int age;

//};

//声明结构体类型同时定义变量

//struct Student

//{

// char name[20];

// int age;

//}xiaoHong={"小红",15},xiaoHua;

//struct

//{

// char name[20];

// int age;

//}xiaoHong={"小红",15},xiaoHua;

//3.给结构体取名

//typedef struct {

// char name[20];

// int age;

//}Student;

//

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

//{

// //struct Student stu;

// Student xiaoHong;

//

// printf("%s %d\n", xiaoHong.name,xiaoHong.age);

//

//

// return 0;

//}

//结构体大小

//不是成员变量的相加,是成员变量对齐后的内存大小

typedef struct {

double f2;

char name[15];

int a;

long b;

long double l;

float f;

}StructSize;

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

{

printf("%ld\n",sizeof(StructSize));

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: