1. 程式人生 > 其它 >隨筆,結構體

隨筆,結構體

  1. 定義一個結構體的時候,最後一定要加;
  2. 可以用 typedef 關鍵字將結構體替代
typedef struct B{
    char a[20];
    double b;
    int c;
}T;
T z={"da za i kunn~",4.5,4};
  1. 結構體允許直接相互賦值。
struct A{
	int x;
	double y;
	char z[10];
};
    //定義
    struct A a,b,c,d;
    //一般賦值
    a.x=1;
    a.y=2.5;
    strcpy(a.z,"hello");
    //互相賦值
b.x=1; b.y=2.5; strcpy(b.z,a.z); //直接copy c=a;
void print(struct A *a){//(*a).x==a->x;
    printf("%d\t%.2lf\t%s\n",(*a).x,(*a).y,(*a).z);
  //printf("%d\t%.2lf\t%s\n",a->x,a->y,a->z);  
}
void pri(struct A st){
    printf("%d\t%.2lf\t%s\n",
st.x,st.y,st.z); }; 二者等價。
  1. 申請一個可變結構體:
    malloc的過程就是先申請,再強制型別轉化。實際上是申請了一個可變長度的陣列,不過指向的型別可以隨意轉化。
struct A a;
……
int n;
scanf("%d",n);
//可能的一種情況:
struct A * arr=NULL;
arr=(struct A *)malloc(sizeof(struct A)*n);
//第二種情況:
struct A * arr=malloc(sizeof(struct A)*n);
//arr就是n個結構體陣列。有arr[i]的操作。
……
free(arr)
;
  1. 自結構體 即 連結串列
    如果考試要考有時間了補。。。。咕咕咕~
  2. だざいさん はぜひ わたし としんちゅう してください。!!!