구조, 당신을 정의하고 그것의 경우를 선언하고 점 표기법을 사용해 일원에게 가치를 지정할 수 있다. 뒤에 오는 보기는 달 구조의 사용을 설명한다.
#include <stdio.h>
#include <string.h>
struct month
{
char name[10];
char abbreviation[4];
int days;
};
int main()
{
struct month m;
strcpy(m.name, "January");
strcpy(m.abbreviation, "Jan");
m.days = 31;
printf("%s is abbreviated as %s and has %d days\n", m.name, m.abbreviation, m.days);
return 0;
}
프로그램의 산출은 다음과 같이 일 것이다:
January is abbreviated as Jan and has 31 days |
모든 ANSI C 컴파일러는 당신이 또 다른 한개에 1개의 구조를 할당하는 것을 허용해, 일원 총명한 사본을 실행한. m1에게 불린 달 구조가 m2 있던 경우에, 우리는 m1에서 뒤에 온 것을 가진 m2에 가치를 지정할 수 있었다:
- 포인터 일원과 가진 구조.
- 구조는 초기화한다.
- 기능에 구조 통과.
- 포인터와 구조.
C에 있는 포인터 일원과 가진 구조
고정 규격 배열에 있는 보유 끈은 기억의 효과 없는 사용이다. 능률적인 접근은 포인터를 이용하기 위한 것일 것입니다. 포인터는 정상적인 포인터 정의에서 이용되는 동일한 방법에 있는 구조에서 정확하게 이용된다. 저희가 보기를 보게 하십시오:
#include <string.h>
#include <malloc.h>
struct month
{
char *name;
char *abbreviation;
int days;
};
int main()
{
struct month m;
m.name = (char *)malloc((strlen("January")+1) *
sizeof(char));
strcpy(m.name, "January");
m.abbreviation = (char *)malloc((strlen("Jan")+1) *
sizeof(char));
strcpy(m.abbreviation, "Jan");
m.days = 31;
printf("%s is abbreviated as %s and has %d days\n",
m.name, m.abbreviation, m.days);
return 0;
}
프로그램의 산출은 다음과 같이 일 것이다:
January is abbreviated as Jan and has 31 days |
|