C 언어 회고 (8, 구조 체, 연합 / 공용 체, 매 거) - iOS 개발 기초
제9 장 사용자 스스로 데이터 형식 만 들 기
1. 구조 체: 사용자 가 서로 다른 유형의 데이터 로 구 성 된 조합 체 의 데이터 구 조 를 구축 하여 지식 점 을 더욱 직관 적 으로 느끼 기 위해 각종 지식 점 을 코드 와 주석 형식 으로 설명 한다.
#include <stdio.h>
struct Date {
int month;
int day;
};
struct Student {
char name[20];
int age;
char sex;
struct Date Birthday; //
}student1 = {"Nong Chaozhe",21,'M',{2,18}}; //
int main(int argc, const char * argv[]) {
struct Student student2 = student1; //
int age = 10; // ,
printf("student1:%s,%d ,%c,%d %d
",student1.name,student1.age,student1.sex,student1.Birthday.month,student1.Birthday.day); //
//
struct Date festival[3] = {1,1,{5,1},10,1}; // , , ,
printf(" :%d.%d
",festival[0].month,festival[0].day);
//
struct Student *p = NULL;
p = &student2;
printf("student2:%s,%d ,%c,%d %d
",(*p).name,p->age,p->sex,(*p).Birthday.month,(*p).Birthday.day); // , student2.name
//
struct Date *p1 = NULL;
for (p1 = festival; p1 < festival+3; p1++) {
printf(" :%d.%d
",p1->month,p1->day);
} //p1+1 p1 festival , festival[1];
//
// ,
printf("%lu
",sizeof(student1));
// 37 (20+4+1+(2*4)=33), 36
// “ ” ( 4 1 )。 , 3 , , 33, 36。 4 。
return 0;
}
output:
student1:Nong Chaozhe,21 ,M,2 18
:1.1
student2:Nong Chaozhe,21 ,M,2 18
:1.1
:5.1
:10.1
36
2. 공용 체 / 연합: 몇 개의 서로 다른 변수 로 하여 금 같은 메모리 의 구 조 를 공유 하 게 하고 지식 점 을 더욱 직관 적 으로 느끼 기 위해 각종 지식 점 을 코드 와 주석 형식 으로 설명 한다.
#include <stdio.h>
union Data {
int i;
char ch;
float f;
}a = {97}; // ,
// !:a = {1,'a',1.5} 3
// , , ,
int main(int argc, const char * argv[]) {
printf("%d
",a.i); // 97
printf("%c
",a.ch); // ‘a’
printf("%f
",a.f); // 0.0000
// 97 a.i, , “01100001”。 。
union Data b = {.ch = 'A'}; //
b.f = 1.5;
b.i = 121;
printf("%c
",b.ch); // ‘A’, 121 ASCII
b = a; //
printf("%p,%p,%p,%p
",&a,&a.i,&a.ch,&a.f); //4
printf("%lu
",sizeof(a)); //
return 0;
}
output:
97
a
0.000000
y
0x100001018,0x100001018,0x100001018,0x100001018
4
3. 매 거: 가능 한 값 을 일일이 열거 하고 변수의 값 은 열거 한 값 의 범위 에 만 국한 된다.시작지식 점 을 더욱 직관 적 으로 느끼 기 위해 각종 지식 점 을 코드 와 주석 형식 으로 설명 한다.
#include <stdio.h>
typedef enum {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}Weekday; // typedef
int main(int argc, const char * argv[]) {
Weekday date = Monday;
// date = 0; ,C 0,1,2,3,4,5……
printf("%d
",date); // ‘0’
// , =,>,<,==
if (date == Monday) {
printf("Yes
");
}
return 0;
}
output:
0
Yes
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
구간 중수i ~ j 블록 의 답 (복잡 도 는 n * sqrt (n) 내 에서 보장 할 수 있 습 니 다) 을 미리 처리 하 는 것 입 니 다. 만약 에 L 이 x 블록 에 속 하고 R 이 y 블록 에 속한다 고 가정 하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.