結構體的基本概念
#define _crt_secure_no_warnings
#include #include #includetypedef struct personmyperson;//myperson是struct person型別的別名
void test01();
}struct person2 myperson2=;
void test02()
void test03();
//在堆上建立結構體變數
struct person *p2 = malloc(sizeof(struct person));
p2->age = 100;
strcpy(p2->name,"ddddd");
printf("姓名:%s 年齡 %d\n",p2->name, p2->age);
}void printarray(struct person persons,int len)
}void test04(),
, ,
};int len = sizeof(persons) / sizeof(struct person);
printarray(persons,len);
//在堆區建立
struct person *personarr = malloc(sizeof(struct person)*4);
for (int i = 0; i < 4; i++)
printarray(personarr,4);
if (personarr!=null) }
int main()
結構體賦值的問題
#define _crt_secure_no_warnings
#include #include #includestruct person
;void test01();
struct person p2 = ;
p1 = p2;
printf("p1的姓名:%s 年齡:%d\n",p1.name,p1.age); //jerry 20
printf("p2的姓名:%s 年齡:%d\n", p2.name, p2.age); //jerry 20
}struct person2
;void test02()
p1.name = malloc(strlen(p2.name)+1);
strcpy(p1.name,p2.name);
p1.age = p2.age;
printf("p1的姓名: %s 年齡: %d\n", p1.name, p1.age);
printf("p2的姓名: %s 年齡: %d\n", p2.name, p2.age);
if (p1.name!=null)
if (p2.name!=null) }
int main()
結構體巢狀一級指標
#define _crt_secure_no_warnings
#include #include #includestruct person
;struct person **allocatespace()
return parray;
}void printarray(struct person **parray,int len)
}void freespace(struct person **parray,int len)
//釋放結構體
free(parray[i]);
parray[i] = null;
} //釋放陣列
free(parray);
parray = null;
}void test01()
int main()
結構體的偏移量
#define _crt_secure_no_warnings
#include #include #include#includestruct person;
void test01()
//通過偏移量 獲取到資料
void test02();
printf("p.b=%d\n",*(int *)((char*)&p1+offsetof(struct person,b)));
printf("p.b=%d\n",*(int *)((int*)&p1+1));
}//結構體巢狀結構體
struct person2;
void test03();
int offset1 = offsetof(struct person2,c);
int offset2 = offsetof(struct person,b);
//printf("%d\n %d\n",offset1,offset2);
printf("%d\n",*(int *)((char *)&p+offset1+offset2));
printf("%d\n",((struct person *)((char*)&p+offset1))->b);
}int main()
結構體的簡單總結
結構體與鍊錶 1 結構體的概念 a 陣列可以定義變數集合,所有的元素都只能有乙個型別 b 結構體也可以定義變數集合,任何成員都可以是不同型別 c 通常陣列內部變數叫做元素,結構體內部變數叫成員 d 使用結構體定義的變數也叫物件 2 定義結構體 注意結構體結尾處要有 struct 結構體名 型別識別符...
結構體知識總結
struct b關於結構體,我們一定不會陌生,結構體可以說和類的用法類似,但是也有不同之處,總的來說,結構體的使用使我們可以更加方便的儲存和使用資料。我在上面就定義了乙個結構體,裡面有兩個元素,乙個是int型別的,乙個是char型別的,因此,結構體裡面可以放進去不同型別的資料,這跟結構體的空間開闢有...
結構體複習總結
結構體 先簡單的介紹一下結構體 結構體是一種型別,是一些值的集合,這些值稱為成員變數。結構體的每個成員可以是不同型別的變數。1.結構體型別的建立 struct stua,p 這裡stu是結構體名稱,a是結構體變數,p是指向結構體的指標。在建立結構體時,結構體名稱不能省略,否則無法引用結構體。在定義結...