개인 재정 C 프로그래밍을위한 구조의 기초 - 더미

C 프로그래밍을위한 구조의 기초 - 더미

차례:

비디오: [C강좌] 초보자를 위한 기초 C 언어 강좌 #13 : 포인터 (1) 2025

비디오: [C강좌] 초보자를 위한 기초 C 언어 강좌 #13 : 포인터 (1) 2025
Anonim

C 프로그래밍 언어 구조를 다 변수 변수, 변수 또는 여러 변수가 하나로 묶어서 생각할 수 있습니다. 구조를 사용하여 복잡한 정보를 저장하거나 액세스합니다. 그렇게하면 다양한 int, char, float 변수 및 심지어 배열을 하나의 깔끔한 패키지로 유지할 수 있습니다.

기본 사항 구조체

구조체는 가변 형식이 아닙니다. 대신 여러 변수 유형을 보유하는 프레임으로 생각하십시오. 여러면에서 구조는 데이터베이스의 레코드와 유사합니다. 예:

이름 나이 갬블 부채

이 세 가지 항목은 데이터베이스 레코드의 필드 일 수 있지만 구조의 멤버 일 수도 있습니다. 이름은 문자열이 될 수 있습니다. 나이, 정수; 및 도박 부채, 부호없는 부동 소수점 값 이러한 레코드가 C에서 구조로 보이는 방법은 다음과 같습니다.

struct record {char name [32]; int 나이; 부채 빚;};

struct는 새로운 구조를 도입, 정의 또는 생성하는 C 언어 키워드입니다.

record는 새로 생성되는 구조의 이름입니다.

중괄호 안에 구조체의 멤버, 명명 된 구조체에 포함 된 변수가 있습니다. 레코드 구조 유형에는 문자열 이름, age라는 이름의 int 및 float 값인 debt이라는 세 가지 멤버 변수가 포함되어 있습니다.

구조체를 사용하려면 생성 한 구조체 유형의 구조체 변수를 선언해야합니다. 예:

구조 기록 인간;

이 라인은 레코드 구조 타입의 새로운 변수를 선언한다. 새 변수의 이름은 human 입니다.

구조체 자체를 정의 할 때 구조체 변수를 선언 할 수도 있습니다. 예:

struct record {char name [32]; int 나이; 부채 빚;} 인간;

이 문장은 레코드 구조 를 정의하고 는 레코드 구조 변수 인 human 을 선언합니다. 해당 구조 유형의 여러 변수도 작성할 수 있습니다.

struct record {char name [32]; int 나이; 부채 빚;} 계산서, 메리, 단, susie;

네 개의 레코드 구조 변수가이 예제에서 생성됩니다. 모든 변수는 구조체에 정의 된 세 멤버에 대한 액세스 권한을가집니다.

구조 변수의 멤버에 액세스하려면 마침표를 사용합니다. 마침표는 멤버 연산자 입니다. 구조체 변수 이름을 멤버 이름과 연결합니다. 예:

printf ("피해자: % sn", 청구서 이름);

이 문은 bill 구조 변수의 이름 멤버를 참조합니다. char 배열은 다른 char 배열과 같이 코드에서 사용할 수 있습니다. 구조 변수에있는 다른 멤버는 개별 카운터 파트와 마찬가지로 사용할 수 있습니다.

dan.연령 = 32;

구조체 채우기 방법

다른 변수와 마찬가지로 구조체 변수를 만들 때 값을 할당 할 수 있습니다. 먼저 구조 유형을 정의한 다음 멤버 변수가 미리 설정된 구조 변수를 선언해야합니다. 사전 설정 값 선언이 구조체에 정의 된 멤버의 순서 및 유형과 일치하는지 확인하십시오 (초기화 된 구조 선언 참조).

초기화 된 구조 선언하기

#include int main () {struct president {char name [40]; int year;}; struct first = { "George Washington", 1789}; printf ("최초의 대통령은 % sn", 첫 번째 이름 임); printf ("그는 % dn에서 취임했습니다.");

연습 1 : 초기화 된 구조 선언에서 편집기로 소스 코드를 입력하여 새 프로그램을 만듭니다. 빌드하고 실행하십시오.

구조체를 선언하고 하나의 명령문으로 초기화 할 수도 있습니다.

struct president {char name [40]; int year;} first = { "George Washington", 1789};

연습 2 : 운동 1에서 소스 코드를 수정하여 구조와 변수가 선언되고 하나의 문장으로 초기화됩니다.

구조체를 선언하고 방금 표시된 것처럼 구조체 변수를 초기화 할 수 있지만 그 트릭을 한 번만 제거 할 수 있습니다. 선언 된 기법을 사용하여 두 번째 구조체 변수를 선언 할 수는 없으며, 이는 초기화 된 구조 선언에 나와 있습니다.

연습 3 : 1797 년 취임 한 두 번째 회장 존 애덤스에 대한 정보로 구조를 초기화하면서 다른 두 번째 구조 변수를 코드에 추가합니다. 두 구조의 내용을 표시합니다.

구조체 배열 만들기

개별 구조체 변수를 하나씩 생성하는 것은 일련의 개별 변수 유형을 만드는 것만큼이나 지루하고 낭비입니다. 다중 구조의 솔루션은 여러 개의 개별 변수와 같습니다: 배열.

구조체 배열은 다음과 같이 선언됩니다.

struct score players [4];

이 문장은 점수 구조의 배열을 선언합니다. 배열은 player라는 이름을 가지며 요소로 4 개의 구조 변수를 포함합니다.

배열의 구조는 배열과 구조 표기법의 조합을 사용하여 액세스됩니다. 예:

플레이어 [2]. name

앞 줄의 변수는 플레이어 구조 배열의 세 번째 요소에있는 name 멤버에 액세스합니다. 예, 첫 번째 요소는

player [0]과 같이 참조되므로 세 번째 요소입니다. name

배열은 요소 1이 아니라 요소 0으로 번호 매기기를 시작합니다.

구조체 배열의 10 행은 4 개의 점수 구조로 구성된 배열을 선언합니다. 배열의 이름은 player입니다. 13 ~ 19 행은 배열의 각 구조를 채 웁니다. 21 ~ 27 행은 각 구조의 멤버 값을 표시합니다.

구조체의 배열

#include int main () {struct scores {char name [32]; int score;}; 구조사 점수 선수 [4]; int x; for (x = 0; x <4; x ++) {printf ("플레이어 % d 입력:", x + 1); scanf ("% s", player [x]).이름); printf ("점수 입력:"); scanf ("% d", & player [x]. score);} puts ("Player Info"); printf ("# tNametScoren"); (x = 0, x <4, x ++) {printf ("% dt % st % 5dn", x + 1, 플레이어 [x].

연습 4 : Arrays of Structures에서 소스 코드를 편집기에 입력하십시오. 프로그램을 빌드하고 실행하십시오. 점수가 5 자리 미만으로 유지되면 제대로 정렬됩니다.

운동 5 : 배열 구조에 코드를 추가하여 구조의 표시가 가장 높은 점수로 먼저 정렬되도록 정렬합니다. 예, 할 수 있습니다. 구조체의 배열을 정렬하면 다른 배열을 정렬하는 것처럼 작동합니다.

여기에 힌트가 있습니다. 솔루션의 27 행은 다음과 같습니다.

player [a] = player [b];

배열 요소를 바꿀 수있는 것처럼 구조체 배열 요소를 바꿀 수 있습니다. 구조체 변수의 멤버를 바꿀 필요는 없습니다.

C 프로그래밍을위한 구조의 기초 - 더미

편집자의 선택

Nikon D3100의 뷰 파인더 대신 모니터 사용 - 많은 최신 dSLR과 같은 인력

Nikon D3100의 뷰 파인더 대신 모니터 사용 - 많은 최신 dSLR과 같은 인력

Nikon D3100은 라이브 뷰를 제공합니다.이 뷰는 사진을 찍을 때 모니터를 뷰 파인더로 사용합니다. 라이브 뷰를 켜는 것은 비디오 촬영 프로세스의 첫 번째 부분이기도합니다. 사실, 동영상을 촬영할 때 뷰 파인더 대신 모니터를 사용해야합니다. 라이브 뷰 사용 ...

을 사용 - Nikon D7000의 라이브 뷰 기능을 사용하여 인물

을 사용 - Nikon D7000의 라이브 뷰 기능을 사용하여 인물

뷰 파인더 대신에 모니터를 사용하여 사진을 구성하십시오. 많은면에서 라이브 뷰 모드에서 사진을 찍는 것은 일반적인 뷰 파인더 촬영과 다르지 않습니다. 그러나 초점을 포함하여 몇 가지 중요한 단계는 라이브 뷰를 전환 할 때 매우 다르게 작동합니다. 기본 사항 ...

편집자의 선택

Photoshop CS6에서 소실점 작업 방법 - Photoshop CS6의 소실점 명령

Photoshop CS6에서 소실점 작업 방법 - Photoshop CS6의 소실점 명령

원근감 평면이있는 이미지에서 사실적인 편집을 할 수 있습니다. 소실점을 사용하면 이미지에서 평면을 지정한 다음 다양한 기법을 사용하여 해당 평면에서 객체를 추가하거나 제거 할 수 있습니다. 편집이 필요한 이미지를 엽니 다. ...

Photoshop CC 픽셀의 측정, 계산 및 분석

Photoshop CC 픽셀의 측정, 계산 및 분석

연구원 및 과학자를 위해 설계된 < Photoshop CC의 측정 기능은 매우 강력합니다. 현미경이나 망원경으로 볼 수있는 기술적 인 이미지의 Whattvers 수를 계산할 수 있습니다. 이미지의 모든 요소의 정확한 크기를 알고 있으면 거의 모든 것을 발견 할 수 있습니다.

편집자의 선택

온라인 커뮤니티가 느리고 꾸준히 승리하는 이유 - 더미

온라인 커뮤니티가 느리고 꾸준히 승리하는 이유 - 더미

온라인 커뮤니티는 정착되지 않았습니다. 잊을 수없는 일. 최선의 시나리오는 꾸준하고 유기적 인 성장을 달성하는 것이지만, 진실은 하룻밤 사이에 발생하지 않는다는 것입니다. 한 번에 소수의 회원 만 있기 때문에 처음에는 좌절 할 수 있으며 고용주는 커뮤니티가 빠르게 성장하고 있다고 생각하지 않을 수도 있지만 진실은 ...

블로그 사이트의 글꼴을 찾는 위치 - 웹상의 많은 장소에서 찾을 수있는 인형

블로그 사이트의 글꼴을 찾는 위치 - 웹상의 많은 장소에서 찾을 수있는 인형

글꼴을 사용하면 최상의 사이트를 찾기가 어려울 수 있습니다. Google Web 글꼴 외에도 다음 목록은 무료 또는 유료로 글꼴을 찾는 데 내가 가장 좋아하는 장소를 알려줍니다. 글꼴 찾기 퀘스트를 진행하면서 친숙해질 필요가 있습니다.

일부 온라인 커뮤니티 회원이 다른 사람보다 오래 머무는 이유 - 인형

일부 온라인 커뮤니티 회원이 다른 사람보다 오래 머무는 이유 - 인형

온라인 커뮤니티가 일시적인 회원을 호스트한다는 것을 이해합니다. 그들은 장기간의 참가자들이지만, 대부분의 회원들은 여러 가지 이유로 잠시 후에 떠납니다. 종종 출발점은 커뮤니티 자체와는 아무런 관련이 없으며 다음 단계로 넘어갈 시간입니다.