[흑마 프로그래머] C 언어 학습 노트의 구조체(12)
구조체
수조에서 모든 원소는 똑같다. 만약에 우리가 모든 원소를 다르게 하려면 구조체를 사용하는 것을 고려할 수 있다.
구조체는 다양한 유형의 데이터 형식으로 구성된 새로운 데이터 유형이다
2. 구조체의 정의
형식:
struct 구조체 이름
데이터 형식 변수 1;
데이터 형식 변수 2;
데이터 유형 변수 3
;
... ...
}
예를 들면 다음과 같습니다.
struct Student {
int age;
char *name;
};
3. 구조체 변수의 정의
1. 구조체를 먼저 정의하고 변수를 정의한다.
struct Student {
int age;
char *name;
};
struct Student stu;
2. 구조체를 정의하는 동시에 변수를 정의한다.
struct Student {
int age;
char *name;
} stu;
3. 구조체 변수를 직접 정의
struct {
int age;
char *name;
} stu;
4. 구조체의 초기화
1. 변수를 설명하는 동시에 초기화
struct Student {
int age;
char *name;
};
struct Student stu = {22, "hello"};
2. 먼저 변수를 설명하고 하나하나 초기화한다.
struct Student stu;
stu.age = 22;
stu.name = "hello";
3. 구조체를 정의하는 동시에 변수 정의와 초기화
struct Student {
int age;
char *name;
} stu = {22, "hello"};
4. 비순차적 초기화
struct Student stu = {.name = "hello", .age = 22};
5. 주의: 구조체를 초기화하지 않으면 모든 변수는 자동으로 기본값이 있습니다
5. 액세스 구조체
1. 구조체 변수는 기본 데이터 유형이다
int age = stu.age;
char *name = stu.name;
2. 구조체 변수는 구조체
struct Date {
int year;
int month;
int day;
};
struct Student {
int age;
char *name;
struct Date birthday;
};
struct Student stu = {22, "hello", {1999, 10, 10}};
int year = stu.birthday.year;
int month = stu.birthday.month;
int day = stu.birthday.day;
3. 같은 구조체 유형 변수 간에 전체적으로 값을 부여할 수 있다
struct Student stu1 = {23, "hello"};
struct Student stu2 = stu1; // stu1 stu2, stu2 = {23, "hello"}
6. 구조체 수조
1. 세 가지 정의 방법:
//
struct Student {
int age;
char *name;
} stus[3];
//
struct Student {
int age;
char *name;
};
struct Student stu[3];
//
struct {
int age;
char *name;
} stus[3];
2. 초기화는 수조의 초기화와 마찬가지로 수조 노트를 참조할 수 있다.
stus = {{12, "hello"}, {23, "world"}, {24, "welcome"}}
7. 구조체 지침
1. 형식struct 구조체 이름 * 바늘 이름;
2. 구조체에 접근하는 방식이 증가했고 이전에 구조체에 접근하는 방식은
구조체 변수 이름.구성원 변수 이름
지금 늘었어요.
(*포인터 이름).구성원 변수 이름 포인터 이름 -> 구성원 변수 이름
3. 예
struct Student {
int age;
char *name;
};
struct Student stu = {23, "hello"};
struct Student *p = &stu;
printf("%d, %s
", stu.age, stu.name);
printf("%d, %s
", (*p).age, (*p).name);
printf("%d, %s
", p->age, p->name);
8. 구조체와 함수
1. 구조체는 함수 매개 변수로서 구조체 실참은 구성원 변수 값에 대응하는 값을 함수 구조체 매개 변수에 대응하는 변수 값에 부여하고 함수 구조체 매개 변수를 바꾸면 실참에 영향을 주지 않는다.
4
struct Student {
int age;
char *name;
};
void test(struct Student s)
{
// s stu
s.age = 10;
s.name = "world";
}
int main()
{
struct Student stu = {23, "hello"};
test(stu);
printf("%d, %s
", stu.age, stu.name);
return 0;
}
출력:23, hello
2. 구조체 바늘을 함수 매개 변수로 한다
4
struct Student {
int age;
char *name;
};
void test(struct Student * s)
{
// s stu
s->age = 10;
s->name = "world";
}
int main()
{
struct Student stu = {23, "hello"};
test(&stu);
printf("%d, %s
", stu.age, stu.name);
return 0;
}
출력:10, world
--------------------------------------IOS가 당신과 교류하기를 기대합니다!----------------------------------------------------------
자세한 내용은 다음을 참조하십시오.http://edu.csdn.net
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.