>> 스피커 1 :의 프로그램을 작성하자 그 이름에 대한 사용자와 메시지를 표시
세 학생의 집.
자, 그 이름과 주택을 저장하기 우리는 무엇을, 여섯 변수를 사용할 수 있습니다.
세 가지 이름에 대한 문자열 및 다른 주택 세 개의 문자열,
그러나 우리는 이미 우리가 청소를 할 수 있다는 것을 알고 대신 배열을 사용하여 해당 코드
예를 들어 대한 크기 3의 배열 세 개의 이름, 그리고 다른 배열
주택 크기 3.
그러나 우리가 이것을 정리할 수 밝혀 또한 여전히, 실제로 그 유지
함께 이름과 집, 그 때문에 학생의 이름과 자신의 집
어떻게 든 그렇게에, 캡슐화 같은 변수에, 말한다.
>> 이렇게하려면,하지만, 우리는 선언 할 필요 우리 자신의 데이터 타입, C에있는 우리의 자신의 형,
C의 저자는 필요하지 않았다 년 전 생각합니다.
이를 위해 우리는 키워드를 사용할 수 있습니다 형식 정의,와 함께
다른 키워드 구조체.
어디 보자.
structs.h의 내부, 이미했습니다 에 의해 시작 받고
CS50 라이브러리를 포함.
나는 다음, 형식 정의 구조체를 입력 할거야 다음 중괄호.
구조체의 내부, 그럴려고 학생이 있어야한다하도록 지정
이름라는 문자열 및 다른 문자열은 집이라고.
그럼 내가 중괄호를 닫거야, 그리고 지정한 이름
이 새로운 데이터 유형은 학생이어야한다.
즉,이 구를 통해 I가 가지고 내 자신의 새로운 데이터 형식 선언
그 순간 전 존재하지 않고 이 데이터 형식의 안쪽이 데이터는 이하와 같다
필드 또는 데이터 멤버 이름이라고 하나, 하나라는 집, 둘의
문자열 형식입니다.
>> 의 지금이 유형을 사용하자 실제 프로그램.
structs0.c, 나는 비슷하게 왔 자신은 일부 이미 시작
상용구 코드, 그리고 지금이야 이 데이터를 사용하려고
다음과 같이 학생을 입력합니다.
내가 먼저 선언 할거야 유형 학생의 배열, 나는거야
배열의 학생을 호출 -
복수 -
나는 크기가되도록 지정합니다 의 값, 통지, 세,
상수 학생 -
모두 대문자에서 -
나는 여기에 선언 한 것으로, 이전 파일의.
의 지금이 세 가지를 반복하자 학생, 대한 메시지를 사용자에게 표시
자신의 이름과 주택.
>> 내가 0을 얻을 INT, 나는 작 그 상수보다, 내가 + +.
그리고 지금이의 몸의 내부 루프, 내가 뭔가를 인쇄거야
학생의 이름 등을들 수있다.
그런 다음 실제로 얻을거야 그 지정하여 학생의 이름
학생들은 내가 브라켓.
즉 나는 i 번째 학생을 원하는 지금 학생들라는 배열 만
그 i 번째 학생의에서 싶어 이름을 지정하고이 작업을 수행하는, 내가 사용하는거야
. 연산자를 얻기 위해 구조체의 특정 필드의 내부.
그래서 학생들이 전. 이름을 괄호로 지정 하는 GetString의 반환 값을 가져옵니다 ().
한편, 나는 인쇄 할거야 비슷한, 학생의 말
집, 지금은 지정거야 그 i 번째 학생의 집 필드
의 반환 값을 얻을 것이다 하는 GetString에 대한 다른 호출 ().
>> 이제이 세 가지와 함께 뭔가를 할 수 있도록 학생들의 이름과 집,
인쇄 같은 간단한 뭔가 문장의 각 중.
INT에 내가 0, 다시 나는보다 작은 얻을 학생들은 I + +, printf의 "% s 님이 % s에 있습니다.
백 슬래시 N ", 그리고 지금 나 플러그하자 이 두 필드의 값,
학생들은 전. 이름, 쉼표 브라켓 학생들은 내가 브라켓. 집, 가까운
괄호, 세미콜론.
>> 그리고 지금은 한 가지 더 할 필요가있다.
이 파일의 맨 아래에 나는 필요 할당 된 메모리를 해제
GetSring ()에 의해 내부적으로 어떤 물론하기 위해,의 malloc를 호출
문자열에 대한 메모리를 할당 사용자 유형.
그러나 이에는 간단합니다.
내가 0을 얻을 INT, 나는보다 작 학생, 난 + +, 몸의 내부
이 루프, 나는 단순히거야 무료 학생들 브래킷 전. 이름을 제공,
무료 학생들은 내가 브라켓. 집.
>> 이제, 우리는 분명히 루프 세 가지를 사용했습니다 이 프로그램에, 때 정말
하나를 사용하지만,이는 수도 그냥 데모의 이익을 위해, 그 때문에
우리는 세 가지로 지정할 수 있습니다 우리가하고있는 단계를 정확히.
우리는 첫 번째 이름과 집에 있어요 학생들의 각각에 대해, 우리는 그 다음입니다
의 이름과 집 밖으로 인쇄 세 학생의 각각과
우리는 메모리를 해제거야 학생들의 각각에 의해 사용됩니다.
그러나 확실하게 우리는이를 결합했습니다 수 루프에 대한 하나의 큰에.
>> 컴파일의 지금 저장할 수 있습니다, 이 프로그램을 실행합니다.
확인 구조체 0. / 구조체 0, 학생의 이름을의 데이비드을 제공하게, 살아있어
메이 하우스, 학생의 이름,의에게하자 로렌 말, 그녀는 Leverett에 살고 있습니다
하우스, 학생의 이름, 롭, 그는거야 커크 랜드 하우스에 살고있다.
그리고 실제로 다윗은, 메이에 로렌, Leverett에
롭은 커크 랜드에 있습니다.