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

편집자의 선택

행사에서 연설을 신청하는 방법 - 인형

행사에서 연설을 신청하는 방법 - 인형

강연을 제안 할 수 있어야합니다 다른 잠재적 인 연사보다 이벤트 참석자에게 더 많은 가치를 제공 할 수 있음을 입증하십시오. 연설 인재 풀은 가능한 연설 기회 수보다 빠르게 증가하고 있습니다. 당신은 이벤트 기획자에게 당신이 원하는 바를 물어볼 수있었습니다. ...

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

새로운 온라인 커뮤니티 회원 유치 방법 - 온라인 커뮤니티의 인형

회원은 일시적입니다. 많은 사람들은 그들이 특정한 목표를 성취 할 때까지 주변에 머물러 있습니다. 다른 사람들은 관심을 잃고 새로운 행 아웃을 찾습니다. 따라서 정기적으로 신입 회원을 영입하지 않으면 커뮤니티가 사라집니다. 사람들이 교류 할 수있는 장소를 마련하는 데 어려움을 겪고 있습니다.

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

엄마 블로거로서 언론의 관심을 끄는 방법 - 인형

수십만 (또는 수백만)의 사람들이 엄청난 성과를 거두고 있습니다. 예상대로, 쉽게 성취되지는 않습니다. 뉴욕 타임스에 언급되거나 투데이 쇼에 출연하기 위해서는 많은 시간과 노력과 신뢰가 필요합니다. 아마도 ...

편집자의 선택

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 사용자 기고에 대한 코멘트 방법 - 인형

Ning 계정에 로그인하면 다른 Ning 사용자의 블로그 게시물, 회신 한 이벤트, 사진 및 비디오에 대한 의견을 남깁니다. 회원님의 논평 벽에 남긴 댓글, 순수 텍스트, 다른 웹 사이트 링크 및 퍼간 동영상과 같은 요소가 귀하의 댓글에 포함될 수 있습니다 ...

닝 네트워크의 광고 제어 방법 - 덤프

닝 네트워크의 광고 제어 방법 - 덤프

기본적으로 닝 네트워크는 애드 센스 광고는 오른쪽 열에 있습니다. 누군가 광고를 클릭하면 생성 된 모든 수익이 Ning으로 이동합니다. 네트워크에서 광고를 게재하여 수익을 얻고 싶거나 광고를 전혀 원하지 않는 경우 제어 광고 프리미엄 서비스를 구입해야합니다.

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 그룹을 만드는 방법 - Dingy

Ning에서 새로운 그룹을 시작하는 것은 가장 멋진 방법 중 하나입니다. 네가 닝 네트워크에서 할 수있는 일. 그룹을 만들 수 있도록 네트워크가 설정되어 있다면 다음 단계를 따르십시오.

편집자의 선택

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 시리즈 카메라로 원시 이미지 파일 처리하기 - 더미 파일

Canon Rebel T3 또는 T3i로 촬영 한 이미지를 원시 데이터로 캡처 할 수 있습니다. Canon 소프트웨어를 사용하는 경우 Raw 파일을 즉시 인쇄 할 수는 있지만 인쇄하기 전에 사진 작업실로 가져 가서 온라인으로 공유하거나 사진 소프트웨어에서 편집 할 수 있습니다.

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 시리즈 카메라에서 자동 초점 포인트 설정 - 인형

Canon Rebel T3 또는 T3i를 사용하는 스포츠 모드에서는 카메라가 중심 초점 위치에 초점을 둡니다. Creative 자동 및 A-DEP 모드뿐만 아니라 다른 완전 자동 노출 모드 (장면 인텔리전스 자동, 인물, 풍경 등)에서 카메라의 자동 초점 시스템은 9 개의 자동 초점을 모두 찾습니다 ...