C 언어
이 튜토리얼에서는 포인터를 사용하여 C 프로그래밍에서 구조체의 멤버에 액세스하는 방법을 배웁니다. 또한 구조체 유형의 메모리를 동적으로 할당하는 방법을 배우게 됩니다.
구조체에서 포인터를 사용하는 방법을 배우기 전에 다음 자습서를 확인하세요.
구조체에 대한 포인터를 만드는 방법은 다음과 같습니다.
struct name {
member1;
member2;
.
.
};
int main()
{
struct name *ptr, Harry;
}
여기, ptr struct
에 대한 포인터입니다. .
포인터를 사용하여 구조의 멤버에 액세스하려면 ->
을 사용합니다. 연산자.
#include <stdio.h>
struct person
{
int age;
float weight;
};
int main()
{
struct person *personPtr, person1;
personPtr = &person1;
printf("Enter age: ");
scanf("%d", &personPtr->age);
printf("Enter weight: ");
scanf("%f", &personPtr->weight);
printf("Displaying:\n");
printf("Age: %d\n", personPtr->age);
printf("weight: %f", personPtr->weight);
return 0;
}
이 예에서 person1의 주소는 personPtr에 저장됩니다. personPtr = &person1;
을 사용하는 포인터 .
이제 person1의 구성원에 액세스할 수 있습니다. personPtr
사용 포인터.
그건 그렇고,
personPtr->age
(*personPtr).age
과 동일합니다. personPtr->weight
(*personPtr).weight
과 동일합니다. 이 섹션을 진행하기 전에 C 동적 메모리 할당을 확인하는 것이 좋습니다.
때로는 선언한 구조체 변수의 수가 충분하지 않을 수 있습니다. 런타임 중에 메모리를 할당해야 할 수도 있습니다. 다음은 C 프로그래밍에서 이를 달성하는 방법입니다.
#include <stdio.h>
#include <stdlib.h>
struct person {
int age;
float weight;
char name[30];
};
int main()
{
struct person *ptr;
int i, n;
printf("Enter the number of persons: ");
scanf("%d", &n);
// allocating memory for n numbers of struct person
ptr = (struct person*) malloc(n * sizeof(struct person));
for(i = 0; i < n; ++i)
{
printf("Enter first name and age respectively: ");
// To access members of 1st struct person,
// ptr->name and ptr->age is used
// To access members of 2nd struct person,
// (ptr+1)->name and (ptr+1)->age is used
scanf("%s %d", (ptr+i)->name, &(ptr+i)->age);
}
printf("Displaying Information:\n");
for(i = 0; i < n; ++i)
printf("Name: %s\tAge: %d\n", (ptr+i)->name, (ptr+i)->age);
return 0;
}
프로그램을 실행하면 다음과 같이 출력됩니다.
Enter the number of persons: 2 Enter first name and age respectively: Harry 24 Enter first name and age respectively: Gary 32 Displaying Information: Name: Harry Age: 24 Name: Gary Age: 32
위의 예에서 n n에서 생성되는 구조체 변수의 수 사용자가 입력합니다.
n에 대한 메모리를 할당하려면 구조체 사람의 수 , 우리가 사용,
ptr = (struct person*) malloc(n * sizeof(struct person));
그런 다음 ptr을 사용했습니다. person의 요소에 액세스하기 위한 포인터 .
C 언어
C while 및 do...while 루프 이 튜토리얼에서는 예제를 통해 C 프로그래밍에서 while 및 do...while 루프를 만드는 방법을 배웁니다. 프로그래밍에서 루프는 지정된 조건이 충족될 때까지 코드 블록을 반복하는 데 사용됩니다. C 프로그래밍에는 세 가지 유형의 루프가 있습니다. for 루프 while 루프 do...while 루프 이전 튜토리얼에서 for에 대해 배웠습니다. 고리. 이 튜토리얼에서는 while에 대해 알아볼 것입니다. 및 do..while 루프. 중 루프 while 구문 루프는 다음과
C 전처리기 및 매크로 이 자습서에서는 c 전처리기를 소개하고 예제를 통해 #include, #define 및 조건부 컴파일을 사용하는 방법을 배웁니다. C 전처리기는 프로그램을 컴파일하기 전에 변환하는 매크로 전처리기(매크로 정의 가능)입니다. 이러한 변환에는 헤더 파일, 매크로 확장 등이 포함될 수 있습니다. 모든 전처리 지시문은 #로 시작합니다. 상징. 예를 들어, #define PI 3.14 C 전처리기의 일반적인 용도는 다음과 같습니다. 헤더 파일 포함:#include #include 전처리기는 C 프로그램에