구조체는 배열과 비슷하지만 배열은 같은 데이터형을 여러 개 정의하는 것이고 구조체는 서로 다른 데이터형을 하나로 묶어서 처리할 수 있다. 아래 코드는 int형만 사용했지만 다른 데이터형을 같은 방법으로 사용할 수 있다.


#include <stdio.h>

struct average
{
    int math;
    int english;
    int science;
};

int main()
{
    struct average student1;
    struct average student2;

    student1.math = 90;
    student1.english = 100;
    student1.science = 80;

    printf("student1's average = %d\n",(student1.math+student1.english+student1.science)/3);

    student2.math = 80;
    student2.english = 90;
    student2.science = 70;

    printf("student2's average = %d\n",(student2.math+student2.english+student2.science)/3);
   
    return 0;


'프로그래밍 > Daily Coding' 카테고리의 다른 글

데이터형 정의하기 (typedef)  (0) 2014.02.20
열거형 기본 형태  (0) 2014.02.19
공용체 사용  (0) 2014.02.10
NULL 문자  (0) 2014.02.05
포인터 이해하기  (0) 2014.02.04

 NULL 문자는 아스키 값 0과 같다.


#include <stdio.h>

int null_test(char* pstr)
{
    int lenth = 0;
    while(*pstr!=NULL)
    {
        pstr++;
        lenth++;
    }

    return lenth;
}

int main()
{
    char *str = "abcde";
    int len = null_test(str);

    printf("lenth = %d\n", len);

    return 0;        
}


 문자열 "abcde"가 메모리에 저장된 모습은 아래와 같다. 'a'가 저장된 주소를 1000번지라고 가정한다.


1000                     1001                       1002                    1003                       1004                    1005

a

b

c

d

e

\0

pstr+0                    pstr+1                    pstr+2                   pstr+3                   pstr+4                   pstr+5


 위와 같이 문자열은 마지막에 NULL로 끝난다.

'프로그래밍 > Daily Coding' 카테고리의 다른 글

데이터형 정의하기 (typedef)  (0) 2014.02.20
열거형 기본 형태  (0) 2014.02.19
공용체 사용  (0) 2014.02.10
구조체 사용  (0) 2014.02.05
포인터 이해하기  (0) 2014.02.04

포인터 이해하기


#include <stdio.h>

int main()
{
    int num_A=0, num_B=0;
    int *pnum_A;
    int *pnum_B;

    pnum_A = &num_A; //pnum_A는 num_A를 가르키고
    *pnum_A = 100; //그 값을 100으로 변경한다.
    printf("num_A : %d, *pnum_A %d\n", num_A, *pnum_A);

    pnum_B = &num_A; //pnum_B는 num_A를 가르키고
    *pnum_B = 200; //그 값을 200으로 변경한다. 따라서 num_A를 가르키는 pnum_A의 값도 200이 된다.
    printf("num_A : %d, *pnum_A : %d, *pnum_B : %d\n", num_A, *pnum_A, *pnum_B);

    pnum_B = &num_B; //pnum_B는 num_B를 가르키고
    *pnum_B = 300; //그 값을 300으로 변경한다.
    printf("num_A : %d, num_B : %d, *pnum_A : %d, *pnum_B : %d\n", num_A, num_B, *pnum_A, *pnum_B);

    pnum_A = &num_B; //pnum_A는 num_B를 가르키고
    *pnum_A = 400; //그 값을 400으로 변경한다. 따라서 num_B를 가르키는 pnum_B의 값도 400이 된다.
    printf("num_A : %d, num_B : %d, *pnum_A : %d, *pnum_B : %d\n", num_A, num_B, *pnum_A, *pnum_B);

    return 0;
}





'프로그래밍 > Daily Coding' 카테고리의 다른 글

데이터형 정의하기 (typedef)  (0) 2014.02.20
열거형 기본 형태  (0) 2014.02.19
공용체 사용  (0) 2014.02.10
구조체 사용  (0) 2014.02.05
NULL 문자  (0) 2014.02.05

+ Recent posts