定義結構體變數
/* 結構體
自定義的一種型別稱為構造型別,在c語言中稱為結構體
定義結構體:
struct [結構體名]
; 定義結構體變數
1.struct 結構體名 變數名;
引用結構體成員 (運算子.)
結構體變數.成員
定義結構體變數並初始化
struct 結構體名 變數名=;
結構體與陣列類似,定義之後不能直接整體賦值,不能直接整體引用
*/#include
#include
intmain(
void);
//結構體型別定義結束
//定義結構體變數
struct
student tom;
// strcpy(tom.name,"tom");
// printf("姓名: %s\n",tom.name);
//定義結構體變數並初始化
//struct student jack=};
printf
("輸入姓名:\n"
);
gets(tom.name);
printf
("輸入性別:\n");
gets(tom.***);
printf
("輸入年齡:\n");
scanf
("%d"
,&tom.age);
printf
("輸入分數:\n");
for(
inti=
0; i<
4; i++)
printf
("姓名: %s\n"
,tom.name);
printf
("性別: %s\n"
,tom.***);
printf
("年齡: %d\n"
,tom.age);
//遍歷輸出
for(
inti=
0; i<
4; i++)
return0;
} /*
1.定義結構體的同時定義結構體變數
struct [結構體名]
變數名[=];
2.定義省略結構體
省略結構體名定義型別時必須在定義時指定所需的所有變數
struct
name1,name2,name3[4];
*/#include
intmain(
void)
bri=;
printf
("出生日期為: %d %d %d \n"
,bri.year,bri.month,bri.day);
return0;
}/*
在結構體型別中使用其他的結構體型別定義結構體變數,需要先定義內部結構體變數的型別方可使用
*/#include
struct
birthday ;
struct
student ;
intmain(
void
),};
printf
("%s: %d-%d-%d\n"
,alice.name,alice.bir.year,alice.bir.month,alice.bir.day);
intlen =
sizeof
(alice.score)/
sizeof
(alice.score[
0]);
for(
inti=
0; i
printf
("%f "
,alice.score[i]);
}printf
("\n"
);return0;
} 結構體陣列
/* 結構體陣列
*/#include
struct birthday ;
struct student ;
intmain(void)
printf
("輸出結果為:\n"
);for
(inti=0
; iprintf
("%s "
,arr[i].name);
printf
("%d-%d-%d "
,arr[i].bir.year, arr[i].bir.month, arr[i].bir.day);
printf
("%f
%f%f
%f "
,arr[i].score[
0], arr[i].score[
1], arr[i].score[
2], arr[i].score[
3]);
printf
("\n");
} printf
("\n");
return0;
} /*
結構體變數之間可以直接賦值 */
/* #include
struct student;
intmain(void);
struct student b;
b=a;
printf
("b.name=%s b.i=%d\n"
,b.name,b.i);
return0;
} */
//交換結構體內容並輸出
#include
struct student;
intmain(void);
struct student b=;
temp=a;
a=b;
b=temp;
printf
("b.name=%s b.age=%d\n"
,b.name,b.age);
printf
("a.name=%s a.age=%d\n"
,a.name,a.age); //
結構體陣列排序原理
/* for
(inti=0
; i1
; i++) }
t=arr[min];
arr[min]=arr[i];
arr[i]=t; }
*/return0;
}結構體做函式引數,值是單項傳遞的
/* 結構體做函式引數,值是單項傳遞的 */
#include
#include
struct
student;
void
output(
struct
student);
intmain(
void
);
output(a);
printf
("a:%s %d\n"
,a.name,a.age);
return0;
}void
output(
struct
student m)
指向結構體變數的指標變數
//指向結構體變數的指標變數 struct type *
//指標變數引用結構體成員運算子 ->
//引用成員的三種方法
1.a.i
2. p->i
3.(*p).i
#include
struct type ;
void input(struct type *);
void output(struct type *arr,int len);
int main(void)
,,,,,69,47,83,79,40};
output(arr,10);
return 0; }
void
input(struct
type *p) //p=&a
void
output(struct
type *arr,int
len)
//struct type arr
}
C語言中結構體
struct oursvoid main struct ours o2 01 結構體整體直接賦值的時候,即使字串也可以直接賦值 o1.str o2.str 錯誤,字串不能直接賦值 字串拷貝的方式 sprintf o1.str,02.str strcpy o1.str,o2.str 3.1 第一種情況...
C語言中的結構體
在 c語言中,結構體 struct 指的是一種資料結構,是c語言中聚合資料型別 aggregate data type 的一類。結構體可以被宣告為 變數 指標或 陣列等,用以實現較複雜的 資料結構。結構體同時也是一些元素的集合,這些元素稱為結構體的成員 member 且這些成員可以為不同的型別,成員...
C語言中的結構體。
這篇部落格我想將一下c語言中的結構體。對於結構體的概念性問題這裡博主不再過多闡述,我們還是用 說話。結構體的語法 這是c語言中的規則 struct 結構體名 我們可以寫乙個簡單的結構體 struct student 在這裡我們要明白乙個事情,c語言中結構體成員變數一般來說應該從定義的由大至小存放,比...