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

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

차례:

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

비디오: [C강좌] 초보자를 위한 기초 C 언어 강좌 #13 : 포인터 (1) 2024
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 프로그래밍을위한 구조의 기초 - 더미

편집자의 선택

JavaScript에서 HTML 양식 요소에 액세스하는 방법 - 다른 HTML 요소와 마찬가지로

JavaScript에서 HTML 양식 요소에 액세스하는 방법 - 다른 HTML 요소와 마찬가지로

자바 스크립트에서 HTML5 요소와 직접 상호 작용할 수 있습니다. 트릭은 선택한 요소가 지원해야하는 브라우저 및 플랫폼에서 작동하는지 확인하는 것입니다. 이 예제에서는 및 태그를 다음과 같은 솔루션의 일부로 사용하는 방법을 보여줍니다.

CSS 값 정의에 대한 빠른 가이드 구문 - 인형

CSS 값 정의에 대한 빠른 가이드 구문 - 인형

W3C (World Wide Web Consortium)에서 모든 CSS 속성의 구문과 가능한 값을 정의합니다. 정의를 가능한 한 정확하게 만들기 위해 W3C는 CSS 값 정의 구문이라는 공식 시스템을 사용합니다. 정의 구문은 가능한 값을 매우 정확하게 정의하지만 CSS 값 정의 구문을 읽는 중 ...

JavaScript로 동적 HTML 요소를 작성하는 방법 - 더미

JavaScript로 동적 HTML 요소를 작성하는 방법 - 더미

모든 페이지에 대한 특수 효과는 페이지에 동적 HTML 변경 기능을 제공하는 것입니다. 예를 들어 다음 예제와 같이 선택한 요소에 특수 효과를 만들 수 있습니다. function ChangeStyles (event) {// 요소에 대한 참조를 얻습니다. var ThisElement ...

편집자의 선택

Excel 2013 통합 문서의 변경 내용 수락 또는 거부 방법 - 변경 내용 추적을 설정하면 더미

Excel 2013 통합 문서의 변경 내용 수락 또는 거부 방법 - 변경 내용 추적을 설정하면 더미

Excel 2013 통합 문서의 경우 리본의 검토 탭에있는 변경 내용 추적 명령 단추의 드롭 다운 메뉴에서 Alt / RGC를 눌러 변경 내용 적용 / 거부 옵션을 선택하여 수락 또는 거부 할 변경 내용을 결정할 수 있습니다. 이렇게하면 Excel이 강조 표시된 모든 변경 내용을 검토합니다 ...

Excel에서 셀에 설명을 추가하는 방법 2016 - 문자

Excel에서 셀에 설명을 추가하는 방법 2016 - 문자

Excel 2016 워크 시트의 특정 셀에 주석을 달 수 있습니다. 댓글은 스티커 메모의 전자 팝업 버전과 유사합니다. 셀에 주석을 추가하려면 다음과 같이하십시오. 셀 포인터를 이동하거나 주석을 추가 할 셀을 클릭하십시오. 새 주석을 클릭하십시오.

Excel 피벗 테이블에 계산 된 필드를 추가하는 방법 - 더미

Excel 피벗 테이블에 계산 된 필드를 추가하는 방법 - 더미

피벗 테이블 내부의 값을 계산합니다. 계산 된 필드 및 항목을 표에 추가 할 수 있습니다. 계산 된 필드를 추가하면 새로운 행이나 열을 피벗 테이블에 삽입 한 다음 수식을 사용하여 새 행이나 열을 채울 수 있습니다. 예를 들어 다음과 같이 나타납니다.

편집자의 선택

포토샵 CS6에서 히스토리 기능으로 채우기를 사용하는 방법 - 더미

포토샵 CS6에서 히스토리 기능으로 채우기를 사용하는 방법 - 더미

채우기 Adobe Photoshop의 기능 Creative Suite 6는 선택을 원할 때 유용합니다. 특정 상태로 바꿀 영역을 쉽게 선택할 수 있으면 기록으로 채우기 기능을 사용할 수 있습니다. 특정 이미지에서 하늘이 마음에 들지 않는다고 가정 해보십시오. 선택한 항목 ...

Photoshop CS6에서 패싯 필터를 사용하는 방법 -

Photoshop CS6에서 패싯 필터를 사용하는 방법 -

Photoshop CS6의 이미지는 먼지와 스크래치를 줄이거 나 날카로운 모서리를 부드럽게하는 것입니다. 패싯 필터는 포스터 라이징 효과를 사용하여 이미지를 분할합니다. Photoshop CS6에서 이미지를 흐리게 처리하려는 한 가지 이유는 먼지 및 스크래치를 줄이거 나 밝기를 비슷하게하는 픽셀 블록을 모아서 기하학적 모양을 사용하여 단일 값으로 변환하기 때문입니다.

Photoshop CS6에서 손 도구 사용 방법 - 인형

Photoshop CS6에서 손 도구 사용 방법 - 인형

Photoshop CS6 손 도구는 이미지 문서에서 빠르게 이동하고 스크롤 막대와 유사하게 작업하여 작업을보다 신속하게 수행 할 수 있습니다. 손 도구는 손 도구를 클릭 할 필요가 거의 없기 때문에 실제 도구보다 기능이 더 많습니다. 간단히 ...