IOS 개발 학습 기초---------C 언어(7) 끝편

3468 단어
제7장 구조체
7.1 사전 컴파일
C 언어에서 제공하는 사전 컴파일 명령은 일반적으로 다음 세 가지로 사용됩니다.
                 1. 매크로 정의 #define PI 3.14
                 2. 파일에는 #include (라이브러리 함수의 헤더 파일)/"myscore.h"(프로그래머의 헤더 파일)
                 3. 조건 컴파일
a. 지정한 표시부호가 정의되면 컴파일러 세그먼트 1, 컴파일러 세그먼트 2를 컴파일하지 않습니다.그렇지 않으면 프로그램 세그먼트 1을 컴파일하지 않고 프로그램 세그먼트를 직접 컴파일합니다.
#ifdef     
         1;
#else
         2;
#endif

b. 상수 표현식이 진짜라면 프로그램 세그먼트 1을 컴파일합니다.그렇지 않으면 컴파일러 세그먼트 2.
#if        
          1;
#else
          2;
#endif

c. 표시자가 정의되지 않으면 컴파일러 세그먼트 1, 그렇지 않으면 컴파일러 세그먼트 2.
#ifndef      
              1;
#else
            2;
#endif

7.2 구조체
7.2.1 구조체의 정의
struct  student
{
     int num;
     char *name;
};

   typedef  

typedef  struct
{
       int num;
       char *name;
}STU;

7.2.2 구조체 변수
typedef struct
{
    int num;
    char name[20];
    char sex;
    float score;
} student;

 main()        student  stu;

        
struct   
{
    int num;
    char name[20];
    char sex;
    float score;
} stu1,stu2;

              
struct    student
{
    int num;
    char name[20];
    char sex;
    float score;
} stu1,stu2;

구조체 변수 부여: 구조체 변수 이름.구성원 이름
7.2.3 구조체 지침
구조체 포인터를 통해 이 구조체 변수 구성원에 접근하는데 일반적인 형식은 두 가지가 있다. (*구조체 포인터).구성원 이름 또는 구조체 지침 -> 구성원 이름.
typedef struct
{
    int num;
    int scores[3];
    char name[20];
}STU;

//                ,      
void studentThreeScores()
{
    double sum = 0;
    STU stu[5],*pStu=stu;
    printf("     ,      ,  
"); for (int i=0; i<5; i++,pStu++) { scanf("%d%d%d%d %s",&pStu->num,pStu->scores,pStu->scores+1,pStu->scores+2,pStu->name); } for (int i=0; i<5; i++) { for (int j=0; j<3; j++) { sum += stu[i].scores[j]; } printf("
"); printf("%d %s %d %d %d %.2lf
",stu[i].num,stu[i].name,stu[i].scores[0],stu[i].scores[1],stu[i].scores[2],sum/3.0); sum = 0; } }

7.2.4 구조체 배열
typedef struct
{
    int num;
    char name[20];
    char sex;
    float score;
} student;

//   
void jiegouti()
{
    student stu[3];
    float sum = 0;
    int count = 0;
    printf("     ,  ,     
"); for (int i=0; i<3; i++) { scanf("%d%s %c%f",&stu[i].num,stu[i].name,&stu[i].sex,&stu[i].score); } for (int i=0; i<3; i++) { sum += stu[i].score; if (stu[i].score<60) { count ++; } } printf(" :%.2f
:%d
:%.2f",sum,count,sum/3.0); }

7.2.5 구조체를 함수 매개 변수로
typedef struct
{
    double re;
    double im;
} complex;

complex add(complex x,complex y);

int main(int argc, const char * argv[])
{
     complex a={10.23,11.23},b={14.20,15.23},c ;
     c = add(a,b);
     printf("%.2f   %.2f",c.re,c.im); 
    return 0;

}

//         ,     
complex add(complex x,complex y)
{
    complex z;
    z.re = x.re + y.re;
    z.im = x.im + y.im;
    return z;
}

마지막에 쓰여있다: C 언어는 마침내 공부를 끝냈고 뒤에 창고, 대기열과 단일 체인표도 있다. 원리를 알면 모두 인터넷에 접속해서 찾아보면 된다.다음부터 OC를 쓰기 시작해요. 기대ing...

좋은 웹페이지 즐겨찾기