char *ptr;
ptr="hello";//可行
char str[32];
str="hello";//不可行
#include#include#include//宣告結構體
struct student//student結構體名
,否則是定義,不是宣告
int age;
char ***;
};int main()
;//初始化結構體變數
strcpy(s1.name,"bbbb");
s1.age=22;
s1.***='m';
//列印結構體變數,逐個列印
printf("%s %d %c\n",s1.name,s1.age,s1.***);//通過結構體變數訪問結構體成員
printf("%s %d %c\n",s2.name,s2.age,s2.***);
struct student *s3;//結構體指標
s3=(struct student *)malloc(sizeof(struct student));
printf("%d\n",sizeof(struct student));
strcpy(s3->name,"cccc");
s3->age=24;
s3->***='m';
printf("%s %d %c\n",s3->name,s3->age,s3->***);
scanf("%s",s1.name);
scanf("%s",s3->name);//name是陣列名,本身就是位址,不需要取位址
scanf("%d",&s3->age);
free(s3);
return 0;
}
編譯執行
[root@localhost 213]# gcc 1-結構體.c -o 1-結構體
[root@localhost 213]# ./1-結構體
偏移量計算
例:int a;
char b;
short c;
char d;
int e;
#include//1.結構體總長度一定是最長成員的整數倍
//2.每個成員的偏移量一定是該成員長度的整數倍,double偏移量是4的整數倍
struct test
;typedef struct test t;
struct test2
;int main()
執行
[root@localhost 213]# gcc 2-結構體長度.c -o 2-結構體長度
[root@localhost 213]# ./2-結構體長度
0xbfcfd500
816
#include#includestruct student
;typedef struct student stu;
int main()
for(i=0;i<3;i++)
stu *s1[10];//結構體指標陣列
for(i=0;i<3;i++)
}
執行
[root@localhost 213]# gcc 3-結構體陣列.c -o 3-結構體陣列
[root@localhost 213]# ./3-結構體陣列
aaa 1
bbb 2
ccc 3
aaa1
bbb2
ccc3
ddd 4
ddd4
#include#include#includestruct info
;typedef struct info info;
#define size 100
int person=0;//表示已經新增的人數
void welcome()
void menu()
void addinfo(info *i)//新增資訊
; char tel[32]=;
int age=0;
printf("請輸入姓名、**、年齡:\n");
scanf("%s%s%d",name,tel,&age);
strcpy(i[person].name,name);
strcpy(i[person].tel,tel);
i[person].age=age;
person++;
}void modifyinfo(info *i)//修改資訊
; char tel[32]=;
int age=0;
printf("請輸入姓名、**、年齡:\n");
scanf("%s%s%d",name,tel,&age);
strcpy(i[num-1].name,name);
strcpy(i[num-1].tel,tel);
i[num-1].age=age;
}void searchinfo(info *i)//查詢資訊
void deleteinfo(info *i)//刪除資訊
person--;
}void showinfo(info *i)//顯示資訊
;int main()
執行
[root@localhost 213]# ./5-聯合體概念
}
執行
[root@localhost 213]# ./6-判斷大小端
小端位元組序
執行
[root@localhost 213]# ./7-大小端轉換
16777216
#include/*
#define sun 0
#define mon 1
#define tue 2
#define wen 3
*/enum
;int main()
執行
[root@localhost 213]# ./8-列舉 01
23
結構和聯合
聯合也是一種新的資料型別,它是一種特殊形式的變數。聯合說明和聯合變數定義與結構十分相似。其形式為 union 聯合名 聯合變數名 聯合表示幾個變數公用乙個記憶體位置,在不同的時間儲存不同的資料型別和不同長度的變數。下例表示說明乙個聯合a bc union a bc 再用已說明的聯合可定義聯合變數。例...
結構,聯合和列舉
結構 結構的宣告格式如下 struct id 別忘了右花括號後面的分號 1.和陣列類似的是,結構變數可在定義時初始化,如 struct id tae 同樣的,這種初始化只能在定義時進行。若在定義之後的地方進行,編譯器會報錯 但可用匿名結構進行快速賦值,如 struct id tae tae 錯誤 t...
C 結構和聯合
結構與聯合體是c語言中就已經存在的資料型別。c 語言對它們進行了擴充套件,最大的變化是允許在結構和聯體中定義成員函式。1 include2 using namespace std 3struct room 7struct student 14 15int main 17 student s 18,8...