iOS 단계 학습 10 일 째 노트 (구조 체)
23642 단어 ios
데이터 구조
1) 개념: 데이터 구 조 는 컴퓨터 프로그램 에서 작 동 하 는 대상 인 데이터 와 데이터 요소 간 의 상호 관계 와 연산 을 말한다.
2) 구조 체 는 반드시 struct 키워드 수식 이 있어 야 한다.
인 스 턴 스 코드:
1 struct Person{
2 char name[20];
3 int age;
4 float height;
5 };
6
7 int main(){
8 struct Person Tom={"Tom",22,180};//struct Person
9 //Tom
10 Tom.age=33;//
11 printf(" =%s; =%d; =%.2f
",Tom.name,Tom.age,Tom.height);
12 return 0;
13 }
3) type: def 를 사용 하여 구조 체 를 수식 하고 type: def 를 사용 하지 않 는 구조 체 와 차이 점 은 type: def 를 수식 하 는 구조 체 는 struct 를 추가 하지 않 아 도 사용 할 수 있다 는 것 이다.
인 스 턴 스 코드:
1 typedef struct Person{
2 char name[20];
3 int age;
4 float height;
5 }stPerson;
6
7 int main(){
8 stPerson Jack={"Jack",36,178};//struct stPerson
9 //Jack
10 Jack.age=25;//
11 printf(" =%s; =%d; =%.2f
",Jack.name,Jack.age,Jack.height);
12 return 0;
13 }
4) 구조 체 집합의 사용
인 스 턴 스 코드:
1 int main(){
2 // , stPerson
3 stPerson stu[10]={};
4 stPerson *pstu;
5 printf("%s",stu[0].name);
6 for (int i=0; i<10; i++) {
7 sprintf(stu[i].name, "Jack%d",i);
8 stu[i].age=10+i;
9 stu[i].height=170+i;
10 }
11 pstu=stu;
12 //(*pstu).name pstu->name;
13 //pstu+i i
14 // ->
15 int len=sizeof(stu)/sizeof(stPerson);
16 for(int j=0; j<len; j++) {
17 printf(" =%s; =%d; =%.2f
",(*pstu).name,(*pstu).age, (*pstu).height);
18 pstu++;
19 }
20 return 0;
21 }
5) 구조 체 바이트 정렬 #pragma pack(n) n 은 1, 2, 4, 8, 16 이 될 수 있다.시스템 정렬 모드 를 설정 하고 구조 모든 구성원 중 최대 자 와 정렬 모드 를 비교 하여 작은 사람과 정렬 합 니 다.
인 스 턴 스 코드:
1 typedef struct
2 {
3 char ch[3];//
4 }aa;
5
6 typedef struct
7 {
8 char ch[3];
9 short b;//2
10 }ab;
11
12 typedef struct
13 {
14 char ch[3];
15 short b;
16 int c;// 4
17 }ac;
18
19 typedef struct
20 {
21 char ch[3];
22 short b;
23 int c;
24 long l;// 8
25 }ad;
26
27 typedef struct
28 {
29 char ch;
30 long l;
31 }ae;
32
33 int main()
34 {
35 printf("sizeof(aa)=%lu
",sizeof(aa));//3
36 printf("sizeof(ab)=%lu
",sizeof(ab));//6
37 printf("sizeof(ac)=%lu
",sizeof(ac));//12
38 printf("sizeof(ad)=%lu
",sizeof(ad));//24
39 printf("sizeof(ae)=%lu
",sizeof(ae));//16
40 return 0;
41 }
6) 매 거 개념: 이름 이 붙 은 전체 상수 의 집합, 매 거 진 성명 의 키 워드 는 enum 입 니 다.
주의 점:
1. 매개 요소 간 에 "," 분리 "
2. 첫 번 째 요소 가 할당 되 지 않 으 면 기본 값 이 0 이 고 그 다음 요 소 는 순서대로 1 을 추가 합 니 다.
3. 매 거 진 은 unsigned int 유형의 포장 집합 입 니 다.
4. 매 거 진 것 은 상수 이 고 매크로 \ # define 와 비슷 합 니 다.
5. 매 거 된 이름 은 이름 을 바 꿀 수 없습니다.
인 스 턴 스 코드:
1 enum weekday
2 {
3 Monday,
4 Tuesday,
5 Wednesday=10,// , +1
6 Thurday,
7 Friday=2,//
8 Saturday,
9 Sunday
10 };
11
12 int main()
13 {
14 enum weekday day= Saturday;//enum weekday ,day
15 printf("day=%u,sizeof(day)=%lu
",day,sizeof(day));// :6,4
16 }
7) typedef 용법 설명;type: def 오래된 형식의 새로운 이름, 형식 에 별명 을 지어 줍 니 다.
인 스 턴 스 코드:
1 typedef unsigned long ul;
2 typedef int *intp;
3 int add(int a,int b){
4 return a+b;
5 }
6
7 // pfunc
8 typedef int (*pfunc)(int,int);
9 int main()
10 {
11 ul number= 100;
12 int a = 20;
13 intp p = &a;
14 pfunc pf = add;
15 printf("number=%lu
",number);
16 printf("*p=%d
",*p);
17 printf("add=%d
",pf(10,20));
18 return 0;
19 }
8) 구조 연합 체, 일반 연합 체 는 둘 중 하 나 를 선택한다. 즉, 연합 체 에는 보통 두 개의 요소 만 존재 하고 시스템 은 초기 화 할 때 그 중의 한 개의 메모리 가 비교적 큰 것 만 선택 하여 할당 한다.
인 스 턴 스 코드:
1 typedef struct Person// Person ,
2 {
3 char name[20];//
4 int age;
5 int height;
6 union{
7 int stuid;
8 char workname[20];
9 };// , .
10 //
11 // ,
12 }stPerson;
13
14 int main()
15 {
16 stPerson xiaoli={"xiaoli",18,180,97};
17 stPerson xiaozhu={"kingkong",26,160,60};
18 // ,
19 printf("sizeof(stPerson)=%lu
",sizeof(stPerson));
20 printf("name:%s,age:%d,height:%d,stuid:%d
",xiaoli.name,xiaoli.age,xiaoli.height,xiaoli.stuid);
21
22 //
23 sprintf(xiaozhu.workname,"%s","kingkong");
24 printf("name:%s,age:%d,height:%d,workname:%s
",xiaozhu.name,xiaozhu.age,xiaozhu.height,xiaozhu.workname);
25 return 0;
26 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.