標籤:
2015.2.4
#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;
}
iOS-C_Day13___結構體