개인 재정 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 프로그래밍을위한 구조의 기초 - 더미

편집자의 선택

여성 건강 : 케겔 운동 방법 - 인형

여성 건강 : 케겔 운동 방법 - 인형

케겔 운동은 성기의 근육을 타겟으로합니다. 이 근육은 출산 중에 발생하는 스트레칭으로 인해 종종 약해지지만, 임신 한 적이없는 여성을 포함하여 어떤 여성이라도 적절한 케겔 (Kegel)을하는 법을 아는 것이 도움이 될 수 있습니다. 본질적으로 케겔 (Kegel)은 생식기에 좋은 운동을 제공하여 ...

폐경기 동안 기대할 사항 - 인형

폐경기 동안 기대할 사항 - 인형

폐경은 모든 여성의 삶의 사실입니다. 다른 연령대의 여러 단계의 증상으로 진행됩니다. 폐경의 결과로 여성은 알을 낳지 않고 생리를 멈추지 만 여성 호르몬, 에스트로겐 및 호르몬의 생성을 감소시킵니다.

여성 건강 : 요로 감염을 예방하는 방법 - 인형

여성 건강 : 요로 감염을 예방하는 방법 - 인형

요로 감염 (UTI)은 상당히 여성의 공통점. 통증이있는 ​​배뇨 나 잦은 소변과 같은 요로 감염의 증상을 발견하면 치료를받는 것이 중요합니다. UTI 치료는 일반적으로 항생제의 빠른 과정이지만 전문가의 도움을받는 데는 지체가 있으면 치료 시간이 길어질 수 있습니다. ...

편집자의 선택

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

Salesforce 조직에서 깨끗한 데이터를 유지 관리하는 많은 회사에서 Salesforce 조직의 깨끗한 데이터 유지 보수

많은 사람들을 위해 일하는 것과 비슷합니다. 많은 기업들이 혜택을 인식하고 있음에도 불구하고 습관을 버리는 것에 저항합니다. 사람들은 깨끗한 데이터가 시스템에 들어갈 수 있도록 시간을 할애하고 싶지 않지만 같은 사람들은 빨리 작업 할 수 있습니다 ...

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce에서 캠페인을 만드는 방법 - Professional, Enterprise 또는 Unlimited Edition 사용자를 위해 제공되는 인형

Salesforce의 모듈은 마케팅 프로그램을 관리, 추적 및 측정하는 데 사용하는 일련의 도구입니다. 캠페인 레코드는 캠페인 레코드입니다. 수동 또는 자동으로 리드, 연락처 및 / 또는 기회 레코드에 링크하여 캠페인에 대한 실제 메트릭을 제공 할 수 있습니다.

편집자의 선택

표시 관련 기사 Joomla 웹 사이트 - 인형

표시 관련 기사 Joomla 웹 사이트 - 인형

Joomla의 또 다른 멋진 모듈은 기사 - 관련 기사. 기사 - 관련 기사는 사이트 방문자가 보려고 선택한 기사와 관련된 기사를 표시하는 모듈입니다. 이 모듈은 현재 기사와 관련된 기사를 어떻게 알 수 있습니까? 그것은 메타 데이터에 입력 할 수있는 메타 데이터 키워드를 사용합니다 ...

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla의 저자, ​​편집자 및 발행인 계정 만들기 - 더미

Joomla는 세 가지 프런트 엔드 사용자, 백엔드 사용자 및 그 중간에있는 특수 클래스의 사용자 클래스가 있습니다. 이 클래스에는 3 개의 사용자 그룹이 있습니다. 작성자는 기사를 제출할 수 있습니다. 편집자는 새 기사를 제출하고 기존 기사를 편집 할 수 있습니다. 게시자는 새 기사를 제출하고 기존 기사를 편집하며 기사를 게시 할 수 있습니다. Joomla 사이트 작성자 작성 ...