슬라이드 1
|
|
- 율 경
- 6 years ago
- Views:
Transcription
1 9 장구조체와공용체 박종혁교수 UCS Lab Tel: SeoulTech st 프로그래밍입문 (1)
2 2 구조체와공용체 C 언어의확장방법 매크로와라이브러리 사용자정의자료형 ( 배열, 구조체, 공용체 ) // 파생형자료형으로쓰기도함
3 구조체의필요성 int number; char name[10]; double grade; 구조체를사용하면변수들을하나로묶을수있습니다.
4 구조체와배열 구조체 vs 배열 같은타입의집합 다른타입의집합
5 5 구조체의장점 통계자료나성적등과같이관련있는서로다른자료형을한덩어리 ( 집합 ) 로만들어처리 연관있는데이터를한덩어리로묶으면프로그램의관리와구현이용이 순서대로정렬 (sort) 하는경우구조체단위로처리되므로간단 네트워크프로그램을작성할때소켓이나헤더 (header) 의 format( 형식 ) 을구조체로묶어서처리 함수를반환할때한개의데이터가아닌구조체단위로묶어서전달할수있음
6 6 구조체 서로다른형의변수들을하나로묶어주는방법 예제 - 카드
7 7 구조체 예제 - 카드 각카드는고유의무늬와숫자를가짐 구조체를사용하여표현하면효율적 카드를위한구조체선언 struct card { int pips; char suit; };
8 8 구조체선언 예제 - 카드 struct card { int pips; char suit; }; struct : 키워드 card : 구조체태그이름 pips, suit : 구조체멤버 * 이것은 struct card 형의정의이고, 변수선언은아님
9 9 구조체변수선언방법 1 struct card 형변수 c1, c2 struct card { int pips; char suit; }; struct card c1, c2;
10 10 구조체변수선언방법 2 struct card 형변수 c1, c2 struct card { int pips; char suit; } c1, c2;
11 11 구조체변수선언방법 3 struct card 형변수 c1, c2 struct card { int pips; char suit; }; typedef struct card card c1, c2; card;
12 12 구조체변수선언방법 4 struct card 형변수 c1, c2 typedef struct { int pips; char suit; } card; card c1, c2;
13 13 구조체변수선언방법 5 struct 형변수선언 struct { int pips; char suit; } c1, c2; 구조체태그이름이없음에주의 C1, c2 와같은형의변수는다시는선언할수없음
14 14 구조체변수선언방법 struct { int pips; char suit; } c1, c2; struct { int pips; char suit; } c3, c4; * c1, c2 는 c3, c4 와는다른형임
15 멤버접근연산자 (*p).number p 가가리키는구조체변수 == p->number p 가가리키는구조체변수의멤버 number p 가가리키는구조체변수의멤버 number
16 16 멤버접근연산자. 일반구조체멤버접근연산자 c1.pips = 3; c1.suit = 's'; c2.pips = c1.pips; c2.suit = c1.suit;
17 17 멤버접근연산자 -> 포인터를통한구조체멤버접근연산자 pointer_to_structure -> member_name 다른방법 (*pointer_to_structure).member_name
18 18 멤버접근연산자 -> 예제 struct complex { double re; /* real part */ double im; /* imag part */ }; typedef struct complex complex; void add(complex *a, complex *b, complex *c) { a -> re = b -> re + c -> re; a -> im = b -> im + c -> im; }
19 19 멤버접근연산자 선언문과배정문 struct student tmp, *p = &tmp; tmp.grade = 'A'; tmp.last_name = "Casanova"; tmp.student_id = 수식동등한수식개념적값 tmp.grade tmp.last_name (*p).student_id *p -> last_name + 1 *(p -> last_name + 2) p -> grade p -> last_name p -> student_id (*(p -> last_name)) + 1 (p -> last_name)[2] A Casanova D s
20 20 구조체멤버 한구조체내에서멤버이름은유일해야하나, 서로다른구조체에서는같은멤버이름을사용할수있음 struct fruit { char *name; int calories; }; struct vegetable { char *name; int calories; }; struct fruit a; struct vegetable b;
21 21 구조체멤버 구조체의멤버로는배열, 포인터변수, 이미정의된다른구조체의변수등모든응용자료형을사용할수있다. 멤버로배열을사용하는예 struct profile{ int age; double height; char name[20]; }; struct profile pf; // 나이를저장할멤버 // 키를저장할멤버 // 이름을저장할멤버 // 구조체변수의선언 name 멤버의사용 strcpy(pf.name, 홍길동 ); printf( %s\n, pf.name);
22 22 구조체멤버 멤버로포인터변수를사용하는예 struct profile{ int age; double height; char *np; }; struct profile pf; pf.np= 홍길동 ; // 나이를저장할멤버 // 키를저장할멤버 // 이름을연결할포인터변수멤버 // 구조체변수의선언 // 포인터변수멤버에문자열연결 - 포인터변수를멤버로사용하는경우키보드로부터문자열입력은 불가능하다 ( 문자열을저장할기억공간이없다!).
23 23 구조체멤버 구조체의멤버로다른구조체의변수를사용하는예 struct student{ struct profile pf; int num; double grade; }; struct student s1; // 이미선언된구조체를멤버로사용 // 구조체변수의선언 - 구조체의멤버로구조체를사용한경우멤버참조연산자를두번사용 하여멤버를참조해야한다.
24 24 구조체멤버 #include <stdio.h> struct profile{ int age; double height; char *np; }; struct student{ struct profile pf; int num; double grade; }; int main() { struct student s1; s1.pf.age=23; s1.pf.height=187.5; s1.pf.np=" 홍길동 "; s1.num=5; s1.grade=4.4; } printf(" 이름 : %s\n", s1.pf.np); printf(" 나이 : %d\n", s1.pf.age); printf(" 키 : %.1lf\n", s1.pf.height); printf(" 학번 : %d\n", s1.num); printf(" 학점 : %.1lf\n", s1.grade); return 0;
25 25 멤버접근연산자. 배열은배열요소의형태가같으므로주소계산에의해각멤버의참조가가능 하지만구조체는각멤버의형태가다르므로멤버참조연산자 (.) 로직접멤버 를참조해야한다. #include <stdio.h> struct student{ int num; double grade; }; int main() { struct student s1; // 구조체변수선언 } s1.num=2; // 구조체멤버참조 s1.grade=2.7; printf( 학번 : %d\n, s1.num); printf( 학점 : %.1lf\n, s1.grade); return 0;
26 26 멤버접근연산자 -> 포인터변수로멤버를참조하기전에먼저구조체변수를참조한다. - 멤버참조연산자 (.) 가참조연산자 (*) 보다우선순위가높으므로괄호가필요하다. #include <stdio.h> struct score{ int kor, eng, mat; }; int main() { struct score a={90, 80, 70}; struct score *sp=&a; } // 구조체의형틀선언 printf( 국어 : %d\n, (*sp).kor); printf( 영어 : %d\n, (*sp).eng); printf( 수학 : %d\n, (*sp).mat); return 0; // 구조체변수의선언과초기화 // 포인터변수에포인터저장 // 포인터변수로구조체변수의 // 각멤버를참조하여출력한다.
27 27 멤버접근연산자 -> 포인터변수가가리키는구조체변수의멤버를간단히참조할때간 접멤버참조연산자 (->) 를사용한다. - list 구조체배열의데이터를출력하는함수를만들자. struct address list[5] = { }; list_prn(list); // list 는구조체배열의배열명 // 배열명을주고함수를호출한다.
28 28 멤버접근연산자 -> 구조체배열의배열명은첫번째구조체를가리키는포인터이므로 배열명을받는매개변수는구조체포인터변수이어야한다. void list_prn(struct address *lp) { int i; } for(i=0; i<5; i++){ printf( %10s%5d%15s%20s\n, lp[i].name, lp[i].age, lp[i].tel, lp[i].addr); } 매개변수 lp 가구조체포인터변수이므로간접멤버참조연산자로 멤버를참조할수있다. // 배열표현을포인터표현으로바꾼다. // 간접멤버참조연산자를사용한다.
29 29 함수에서구조체 구조체는함수의인자로써함수에전달될수있고, 함수로부터리턴될수도있음 함수의인자로서구조체가전달될때구조체는값으로전달됨 구조체가많은멤버를가지거나, 큰배열을멤버로가질경우, 함수의인자로구조체를전달하는것은상대적으로비효율적임 따라서대부분의응용프로그램에서는함수의인자로구조체의주소를사용함
30 30 함수에서구조체예제 typedef struct { char int struct dept struct home_address double... name[25]; employee_id; department; *a_ptr; salary; } employee_data; * department 멤버는그자체가구조체이고, 컴파일러는각멤버의크기를미리알아야하므로 struct dept에대한선언이먼저와야함
31 31 함수에서구조체예제 함수선언방법 employee_data update(employee_data e){... printf("input the department number: "); scanf("%d", &n); e.department.dept_no = n;... return e; } * 함수호출 employee_data e; e = update(e);
32 32 함수에서구조체예제 함수선언방법 Void update(employee_data *p) {... printf("input the department number: "); } scanf("%d", &n); p->department.dept_no = n;... * 함수호출 employee_data e; update(&e);
33 33 구조체의초기화 struct 태그이름구조체변수 = { 데이터 1, 데이터 2,... }; struct Person { char name[11]; /* 이름 */ char jumin[15]; /* 주민등록번호 */ int age; /* 나이 */ double weight; /* 몸무게 */ }; struct Person kang = {" 강한자, , 20, 57.59};
34 34 구조체변수도배열과같이중괄호를사용하여초기화한다. - profile 구조체변수를초기화하는예 struct profile{ int age; double height; char name[20]; }; // 나이를저장할멤버 // 키를저장할멤버 // 이름을저장할멤버 구조체의형틀선언, 변수선언, 초기화를동시에할수있다.
35 35 구조체의초기화 - 예제 card c = {13, 'h'}; /* the king of hearts */ complex a[3][3] = { {{1.0, -0.1}, {2.0, 0.2}, {3.0, 0.3}}, {{4.0, -0.4}, {5.0, 0.5}, {6.0, 0.6}}, }; /* a[2][] is assigned zeroes */ struct fruit frt = {"plum", 150}; struct home_address { char *street; char *city_and_state; long zip_code; } address = {"87 West Street", "Aspen, Colorado", 80526}; struct home_address previous_address = {0};
36 36 구조체예제 /* 세명의데이터중에서학점이가장높은학생의학번, 이름, 학점을출력 */ #include <stdio.h> struct student{ int num; char name[20]; double grade; }; int main() { struct student s1={315, " 홍길동 ", 2.4}, s2={247, " 이순신 ", 3.7}, s3={330, " 세종대왕 ", 4.4}; struct student max; } max=s1; if(s2.grade > max.grade) max=s2; if(s3.grade > max.grade) max=s3; printf(" 학번 : %d\n", max.num); printf(" 이름 : %s\n", max.name); printf(" 학점 : %.1lf\n", max.grade); return 0; // 학생데이터에대한구조체선언 // 학번을저장할멤버 // 이름을저장할멤버 // 학점을저장할멤버 // 구조체변수의선언과초기화 // 학점이가장높은학생의데이터를저장할구조체변수 // 처음에홍길동의학점이가장높다고가정한다. // 각학생의학점을비교하여학점이가장높은 // 학생의데이터가 max 에저장되도록한다. // 학점이가장높은학생의각데이터를출력한다.
37 37 구조체사용 배열은대입연산이불가능하다. int ary1[5]={10,20,30,40,50}; int ary2[5]; ary2 = ary1; // 불가능하다. 각배열요소를일일이대입해야한다! 구조체변수는대입연산으로모든멤버들을복사할수있다. struct student s1={315, 홍길동, 2.4}; struct student max; max=s1;
38 38 구조체사용 구조체는대입연산이가능하므로함수의전달인자로줄수있다. - 최고학점의학생데이터를함수로출력해보자. 함수의호출 max_prn(max); // 구조체변수를전달인자로주고호출한다. 함수의정의 void max_prn(struct student max) { printf( 학번 : %d\n, max.num); printf( 이름 : %d\n, max.name); printf( 학점 : %d\n, max.grade); } // 매개변수는구조체변수를선언한다.
39 39 구조체사용 구조체를사용하면포인터없이도두변수의값을바꿀수있다. - 로보트의양쪽시력을바꾸는프로그램예 #include <stdio.h> struct vision{ double left; double right; }; struct vision exchange(struct vision); int main() { struct vision robot; } printf(" 로보트의시력을입력하세요 ( 좌, 우 ) : "); scanf("%lf%lf", &robot.left, &robot.right); robot=exchange(robot); printf(" 바뀐로보트의시력 ( 좌, 우 ) : %.1lf, %.1lf\n", robot.left, robot.right); return 0; struct vision exchange(struct vision robot) { double temp; } temp=robot.left; robot.left=robot.right; robot.right=temp; return robot;
40 40 구조체배열 구조체변수가많이필요하면배열로선언하여사용 - 주소록을만드는프로그램의예 (5 명의주소를저장할경우 ) struct address{ char name[20]; int age; char tel[20]; char addr[80]; }; // 이름을저장할멤버 // 나이를저장할멤버 // 전화번호를저장할멤버 // 주소를저장할멤버
41 41 구조체배열 구조체배열의참조된배열요소는구조체변수이므로실제데이터 를저장하기위해서는다시멤버를참조해야함 - list 배열의네번째배열요소의 age 멤버를참조할때 - list 배열의네번째배열요소의모든멤버에값을저장 strcpy(list[3].name, 홍길동 ); list[3].age=23; strcpy(list[3].tel, ); strcpy(list[3].addr, 울릉도동남쪽외로운섬독도 );
42 42 구조체배열 배열의초기화방법을그대로적용 단, 배열의요소가구조체이므로각각의초기값은구조체초기화 형식을사용 - list 배열의초기화 struct address list[5] = { { 홍길동, 23, , 울릉도독도 }, { 이순신, 35, , 서울건천동 }, { 장보고, 19, , 완도청해진 }, { 유관순, 15, , 충남천안 }, { 안중근, 45, , 황해도해주 } };
43 43 구조체배열예제 /* 배열요소의값을반복문으로출력 */ #include <stdio.h> struct address { char name[20]; int age; char tel[20]; char addr[80]; }; int main() { struct address list[5]={{" 홍길동 ", 23, " ", " 울릉도독도 "}, {" 이순신 ", 35, " ", " 서울건천동 "}, {" 장보고 ", 19, " ", " 완도청해진 "}, {" 유관순 ", 15, " ", " 충남천안 "}, {" 안중근 ", 45, " ", " 황해도해주 "}}; int i; } for(i=0; i<5; i++){ // 배열요소가 5개이므로 5번반복 printf("%10s%5d%15s%20s\n", list[i].name, list[i].age, list[i].tel, list[i].addr); } return 0;
44 44 공용체 union 공용체는구조체와비슷한구문형식을가지지만각멤버들은같은기억장소를공유함 공용체형은메모리의같은위치에저장될여러값 의집합을정의 저장된값을올바르게해석하는것은프로그래머 의책임
45 45 공용체변수선언 공용체변수선언 union int_or_float a, b, c; 이선언으로식별자 a, b, c에대한기억장소가할당 컴파일러는공용체의멤버중에서가장큰기억장소를요구하는멤버의요구만큼기억장소를할당 공용체의멤버접근방법은구조체의멤버접근방법과동일 첫번째멤버만초기화가능함
46 공용체의특성 하나의메모리공간을둘이상의변수가공유하는형태
47 47 형식 union 태그이름 { 자료형멤버 ; }; union data { char ch; int num; double y; };
48 48 #include <stdio.h> union data { /* 공용체정의 */ char ch; int num; double y; }; int main() { union data value; /* 공용체변수선언 */ value.ch = 'A'; printf("ch = %d\n", value.ch); value.num = 300; printf("num = %d\n", value.num); value.y = ; printf("y = %.3f\n", value.y); } return 0;
49 49 공용체예제 공용체는모든멤버가하나의기억공간을공유하므로메모리를절약할수있지만다른멤버에의해서데이터가변질될위험 #include <stdio.h> union student{ int num; double grade; }; int main() { union student s1={315}; } printf(" 학번 : %d\n", s1.num); s1.grade=4.4; printf(" 학점 : %.1lf\n", s1.grade); printf(" 학번 : %d\n", s1.num); return 0; 출력결과 학번 : 315 학점 : 4.4 학번 : 학번의초기값이학점멤버에의해서변질되었다.
50 열거형 열거형 (enumeration) 이란변수가가질수있는값들을미리열거해놓은자료형 ( 예 ) 요일을저장하고있는변수는 { 일요일, 월요일, 화요일, 수요일, 목요일, 금요일, 토요일 } 중의하나의값만가질수있다.
51 열거형의선언 enum days { SUN, MON, TUE, WED, THU, FRI, SAT }; 태그이름 값들을나열 열거형변수선언 enum days today; today = SUN; // OK!
52 열거형이필요한이유 다음과같이프로그램을작성할수있다. int today; today = 0; // 일요일 today = 1; // 월요일 되도록오류를줄이고가독성을높여야된다. 0 보다는 SUN 라는기호상수가더바람직하다. 의미를쉽게알수있기때문이다. today 에 9 와같은의미없는값이대입되지않도록미리차단하는것도필요하다.
53 열거형초기화 enum days { SUN, MON, TUE, WED, THU, FRI, SAT }; // SUN=0, MON=1,... enum days { SUN=1, MON, TUE, WED, THU, FRI, SAT }; // SUN=1, MON=2,... enum days { SUN=7, MON=1, TUE, WED, THU, FRI, SAT=6 };// SUN=7, MON=1,... 값을지정하지않으면 0 부터할당
54 열거형의예 enum colors { white, red, blue, green, black }; enum boolean { false, true }; enum levels { low, medium, high }; enum car_types { sedan, suv, sports_car, van, pickup, convertible };
55 예제 #include <stdio.h> enum days { SUN, MON, TUE, WED, THU, FRI, SAT }; char *days_name[] = { "sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday" }; int main(void) { enum days d; d = WED; printf("%d번째요일은 %s입니다\n", d, days_name[d]); return 0; } 3 번째요일은 wednesday 입니다
56 열거형과다른방법과의비교 정수사용기호상수열거형 switch(code) { case 1: printf("lcd TV\n"); break; case 2: printf("pdp TV\n"); break; } 컴퓨터는알기쉬우나사람은기억하기어렵다. #define LCD 1 #define PDP 2 switch(code) { case LCD: printf("lcd TV\n"); break; case PDP: printf("pdp TV\n"); break; } 기호상수를작성할때오류를저지를수있다. enum tvtype { LCD, PDP }; enum tvtype code; switch(code) { case LCD: printf("lcd TV\n"); break; case PDP: printf("pdp TV\n"); break; } 컴파일러가중복이일어나지않도록체크한다.
57 typedef typedef 은새로운자료형 (type) 을정의 (define) C 의기본자료형을확장시키는역할 typedef old_type new_type; 새로운자료형을정의 typedef unsigned char BYTE; 기존의자료형 새로운자료형
58 58 typedef 를사용하여응용자료형을간단하게사용 Student s1; // 재정의된자료형으로간단하게구조체변수선언 형선언과동시에재정의하는방법도가능하다. typedef struct { int num; double grade; } Student; // 재정의될것이므로자료형의이름이필요없다. // 새로운자료형의이름을바로적어준다.
59 59 typedef 예제 #include <stdio.h> typedef struct { int num; double grade; } Student; void data_prn(student *); int main() { Student s1={315, 4.2}; } data_prn(&s1); return 0; // 구조체의선언과동시에자료형의재정의한다. // 함수의선언, 매개변수는 Student형의포인터변수 // Student형의변수선언과초기화 // Student 변수의포인터를전달한다. void data_prn(student *sp)// Student형을가리키는포인터변수 { printf(" 학번 : %d\n", sp->num); // 구조체포인터변수로멤버참조하기 printf(" 학점 : %.1lf\n", sp->grade); }
60 60
61 예제 #1 #include <math.h> struct point { int x; int y; }; int main(void) { struct point p1, p2; int xdiff, ydiff; double dist; printf(" 점의좌표를입력하시오 (x y): "); scanf("%d %d", &p1.x, &p1.y); printf(" 점의좌표를입력하시오 (x y): "); scanf("%d %d", &p2.x, &p2.y); xdiff = p1.x - p2.x; ydiff = p1.y - p2.y; dist = sqrt(xdiff * xdiff + ydiff * ydiff); 점의좌표를입력하시오 (x y): 점의좌표를입력하시오 (x y): 두점사이의거리는 입니다. p1 (x,y) p2 (x,y) } printf(" 두점사이의거리는 %f 입니다.\n", dist); return 0;
62 예제 #2 구조체배열 #define SIZE 3 struct student { int number; char name[20]; double grade; }; int main(void) { struct student list[size]; int i; for(i = 0; i < SIZE; i++) { printf(" 학번을입력하시오 : "); scanf("%d", &list[i].number); printf(" 이름을입력하시오 : "); scanf("%s", list[i].name); printf(" 학점을입력하시오 ( 실수 ): "); scanf("%lf", &list[i].grade); } 학번을입력하시오 : 이름을입력하시오 : 홍길동학점을입력하시오 ( 실수 ): 4.3 학번을입력하시오 : 이름을입력하시오 : 김유신학점을입력하시오 ( 실수 ): 3.92 학번을입력하시오 : 이름을입력하시오 : 이성계학점을입력하시오 ( 실수 ): 2.87 학번 : , 이름 : 홍길동, 학점 : 학번 : , 이름 : 김유신, 학점 : 학번 : , 이름 : 이성계, 학점 : } for(i = 0; i< SIZE; i++) printf(" 학번 : %d, 이름 : %s, 학점 : %f\n", list[i].number, list[i].name, list[i].grade); return 0;
63 예제 #2 구조체배열 #include <stdio.h> struct vector { float x; float y; }; struct vector get_vector_sum(struct vector a, struct vector b); int main(void) { struct vector a = { 2.0, 3.0 }; struct vector b = { 5.0, 6.0 }; struct vector sum; } sum = get_vector_sum(a, b); printf(" 벡터의합은 (%f, %f) 입니다.\n", sum.x, sum.y); return 0; a + b a b
64 예제 #3 구조체와배열그리고포인터 (1) struct person { char name[20]; char phone[20]; }; int main() { struct person man={"thomas", "354-00xx"}; struct person * pman; pman=&man; // 구조체변수를이용한출력. printf("name : %s\n", man.name); printf("phone : %s\n", man.phone); // 구조체포인터를이용한출력 1. printf("name : %s\n", (*pman).name); printf("phone : %s\n", (*pman).phone); } // 구조체포인터를이용한출력 2. printf("name : %s\n", pman->name); printf("phone : %s\n", pman->phone); return 0;
65 예제 #3 구조체와배열그리고포인터 (2) #include <stdio.h> struct perinfo { char addr[30]; char tel[20]; }; struct person { char name[20]; char pid[20]; struct perinfo* info; }; int main() { struct perinfo info={"korea Seoul", " "}; struct person man={"mr. Lee", " xxxx512"}; man.info=&info; } printf("name : %s\n", man.name); printf("pid : %s\n", man.pid); printf("addr : %s\n", man.info->addr); printf("tel : %s\n", man.info->tel); return 0;
66 예제 #4 Typedef 활용 #include <stdio.h> typedef struct point { int x; int y; } POINT; POINT translate(point p, POINT delta); int main(void) { POINT p = { 2, 3 }; POINT delta = { 10, 10 }; POINT result; result = translate(p, delta); printf(" 새로운점의좌표는 (%d, %d) 입니다.\n", result.x, result.y); } return 0;
67 참고문헌 열혈 C 프로그래밍, 윤성우, 오렌지미디어 쉽게풀어쓴 C 언어 Express, 천인국, 생능출판사 뇌를자극하는 C 프로그래밍, 서현우, 한빛미디어 쾌도난마 C 프로그래밍, 강성수, 북스홀릭 67
Microsoft PowerPoint - chap09-1.ppt
참고자료 : chapter 9-1. 구조체 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 구조체의형선언과멤버참조 구조체는배열과달리다른형태의자료형도묶어서처리할수있다. 한학생과관련된여러형태의데이터를묶어서처리할수있으므로배열보다효율적이다. - 5 명의학생에대한학번과학점을처리하는예
More information슬라이드 1
9 장구조체와공용체 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2012-1 st 프로그래밍입문 (1) 2 구조체와공용체 C 언어의확장방법 매크로와라이브러리 사용자정의형 ( 배열, 구조체, 공용체 ) 3 구조체 서로다른형의변수들을하나로묶어주는방법 예제 - 카드 4 구조체 예제 -
More information14 주차구조체와공용체
14 주차구조체와공용체 구조체의개념, 정의, 초기화방법 구조체와포인터와의관계 공용체와 typedef 자료형구조 자료형 (data type) 기초자료형 파생자료형 사용자정의자료형 char int float double void 배열포인터구조체공용체 typedef enum 구조체의용도 복잡한형태의데이터란한가지형태의자료가아닌복합형의자료로구성되어있어기본자료형이나배열로는표현하기힘든형태의데이터를말한다.
More informationMicrosoft PowerPoint - chap09.ppt
2010-1 학기프로그래밍입문 (1) 9 장구조체와공용체 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 0 C 언어의확장방법 - 매크로와라이브러리 구조체와공용체 - 사용자정의형 ( 배열, 구조체, 공용체 ) A Book on C, 4ed. 9-1 구조체 서로다른형의변수들을하나로묶어주는방법 예제 - 카드 A Book on C,
More informationABC 9장
9 장구조체와공용체 0 구조체와공용체 C 언어의확장방법 - 매크로와라이브러리 - 사용자정의형 ( 배열, 구조체, 공용체 ) 9-1 구조체 서로다른형의변수들을하나로묶어주는방법 예제 - 카드 9-2 구조체 예제 - 카드 - 각카드는고유의무늬와숫자를가짐 구조체를사용하여표현하면효율적 - 카드를위한구조체선언 struct card { int pips; char suit;
More informationuntitled
자료형 기본자료형 : char, int, float, double 등 파생자료형 : 배열, 열거형, 구조체, 공용체 vs struct 구조체 _ 태그 _ 이름 자료형멤버 _ 이름 ; 자료형멤버 _ 이름 ;... ; struct student int number; // char name[10]; // double height; // ; // x값과 y값으로이루어지는화면의좌표
More information기초컴퓨터프로그래밍
구조체 #include int main() { } printf("structure\n"); printf("instructor: Keon Myung Lee\n"); return 0; 내용 구조체 (struct) Typedef 공용체 (union) 열거형 (enum) 구조체 구조체 (structure) 어떤대상을표현하는서로연관된항목 ( 변수 )
More information11장 포인터
누구나즐기는 C 언어콘서트 제 11 장구조체 이번장에서학습할내용 구조체의개념, 정의, 초기화방법 구조체와포인터와의관계 공용체와 typedef 구조체는서로다른데이터들을하나로묶는중요한도구입니다. 자료형의분류 기본자료형 : char, int, float, double 등 자료형 파생자료형 : 배열, 열거형, 구조체, 공용체 구조체의필요성 학생에대한데이터를하나로모으려면?
More information이번장에서학습할내용 구조체란무엇인가? 구조체의선언, 초기화, 사용 구조체의배열 구조체와포인터 구조체와함수 공용체 열거형 typedef 구조체는복잡한내용을일목요연하여정리하는데유용하게사용됩니다. 2
제 13 장구조체 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 구조체란무엇인가? 구조체의선언, 초기화, 사용 구조체의배열 구조체와포인터 구조체와함수 공용체 열거형 typedef 구조체는복잡한내용을일목요연하여정리하는데유용하게사용됩니다.
More informationMicrosoft PowerPoint - 제13장 구조체
쉽게풀어쓴 C 언어 Express 제 13 장구조체 이번장에서학습할내용 구조체의개념, 정의, 초기화방법 구조체와포인터와의관계 공용체와 typedef 구조체는서로다른데이터들을하나로묶는중요한도구입니다. 자료형의분류 기본자료형 : char, int, float, double 등 자료형 파생자료형 : 배열, 열거형, 구조체, 공용체 구조체의필요성 학생에대한데이터를하나로모으려면?
More informationMicrosoft PowerPoint - Lesson12.pptx
2009 Spring Computer Engineering g Programming g 1 Lesson 12 - 제 13 장구조체 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 구조체란무엇인가? 구조체의선언, 초기화, 사용 구조체의배열 구조체와포인터
More informationMicrosoft PowerPoint - ch08 - 구조체 (structure) am0845
2015-1 프로그래밍언어 8. 구조체 (Structure) 2015 년 4 월 11 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 구조체란무엇인가? 구조체의선언, 초기화, 사용
More informationMicrosoft PowerPoint - chap-13.pptx
쉽게풀어쓴 C 언어 Express 제 13 장구조체 컴퓨터프로그래밍기초 구조체란? 자료형 기본자료형 : char, int, float, double 등 파생자료형 : 배열, 열거형, 구조체, 공용체 구조체 : 서로다른자료형을하나로묶는구조 구조체 vs 배열 컴퓨터프로그래밍기초 2 구조체의선언 구조체선언형식 ( 예 ) 학생에대한데이터 태그 (tag) struct
More information윤성우의 열혈 TCP/IP 소켓 프로그래밍
C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct
More information10장. 구조체
2019-1 st 프로그래밍입문 (1) 10 장. 구조체 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 목차 구조체의기본 구조체의개념 구조체의정의 구조체변수의선언및초기화 구조체변수의사용 구조체변수간의초기화와대입 구조체변수의비교 typedef 구조체의활용 구조체배열 구조체포인터
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More information구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
More informationMicrosoft PowerPoint - ch08 - 구조체 (structure) am0845
구조체와함수 구조체를함수의인수로전달하는경우 구조체의복사본이함수로전달되게된다. 만약구조체의크기가크면그만큼시간과메모리가소요된다. int equal(struct student s1, struct student s2) { if( strcmp(s1.name, s2.name) == 0 ) return 1; else return 0; 8-40 구조체와함수 구조체의포인터를함수의인수로전달하는경우
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More informationPowerPoint 프레젠테이션
오픈소스소프트웨어개발입문 (CP33992) 사용자정의자료형 부산대학교공과대학정보컴퓨터공학부 학습목표 여러자료형변수들의집합체인구조체와공용체의특징과차이점을이해할수있다. 구조체 구조체선언과사용방법을알수있다. 구조체배열을이용한프로그램을할수있다. 구조체포인터를이용한프로그램을할수있다. 구조체자체혹은구조체포인터를매개변수로전달할수있다. 구조체의멤버로서다른구조체를사용할수있다.
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More informationuntitled
int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More informationMicrosoft PowerPoint - chap06-5 [호환 모드]
2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.
More information프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음
프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y
More informationMicrosoft PowerPoint - Chapter_09.pptx
프로그래밍 1 1 Chapter 9. Structures May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 구조체의개념 (1/4) 2 (0,0) 구조체 : 다양한종류의데이터로구성된사용자정의데이터타입 복잡한자료를다루는것을편하게해줌 예 #1: 정수로이루어진 x,
More informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More informationMicrosoft PowerPoint - 07_(C_Programming)_(Korean)_Composite_Data_Types
C Programming 복합데이터유형 (Composite Data Types) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 구조체 구조체와포인터그리고함수 공용체와열거형 2 구조체 구조체 구조체배열 중첩구조체 구조체와포인터그리고함수 공용체와열거형 3 구조체 (Structure) 구조체 (1/8) 서로연관된원소들의집합을하나의이름으로묶어놓은것
More informationMicrosoft PowerPoint - chap12-고급기능.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 가 제공하는 매크로 상수와 매크로
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationMicrosoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information중간고사
중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX
More information1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문
1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int
More informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More informationuntitled
while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)
More informationMicrosoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More information8장. 포인터
2019-1 st 프로그래밍입문 (1) 8 장포인터 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultechackr 목차 포인터의기본 포인터의개념 포인터의선언및초기화 포인터의사용 포인터의용도 포인터사용시주의사항 참조에의한호출 배열과포인터의관계 calloc() 과 malloc() 을이용한동적메모리할당
More informationPowerPoint 프레젠테이션
Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationMicrosoft PowerPoint - Chapter_04.pptx
프로그래밍 1 1 Chapter 4. Constant and Basic Data Types April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 기본자료형문자표현방식과문자자료형상수자료형변환 기본자료형 (1/8) 3 변수 (Variables)
More information0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4
Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x
More informationchap8.PDF
8 Hello!! C 2 3 4 struct - {...... }; struct jum{ int x_axis; int y_axis; }; struct - {...... } - ; struct jum{ int x_axis; int y_axis; }point1, *point2; 5 struct {....... } - ; struct{ int x_axis; int
More informationLab 3. 실습문제 (Single linked list)_해답.hwp
Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.
More information; struct point p[10] = {{1, 2, {5, -3, {-3, 5, {-6, -2, {2, 2, {-3, -3, {-9, 2, {7, 8, {-6, 4, {8, -5; for (i = 0; i < 10; i++){ if (p[i].x > 0 && p[i
; struct point p; printf("0이아닌점의좌표를입력하시오 : "); scanf("%d %d", &p.x, &p.y); if (p.x > 0 && p.y > 0) printf("1사분면에있다.\n"); if (p.x < 0 && p.y > 0) printf("2사분면에있다.\n"); if (p.x < 0 && p.y < 0) printf("3사분면에있다.\n");
More informationPowerPoint Template
10 포인터 1 주소 Address( 주소 ) 메모리에는그메모리의저장장소의위치를나타내는주소값 주소 (address) 는 1 바이트마다 1 씩증가하도록메모리에는연속적인번호가구성 2 주소연산자 & & 변수 변수의주소값을알아내려면변수앞에주소연산자 & (ampersand) 를이용 주소값이용장단점 주소값을이용하면보다편리하고융통성있는프로그램이가능 그러나복잡하고어려운단점
More informationMicrosoft PowerPoint - chap-11.pptx
쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.
More informationint main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \
? 1 int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \n", &a); printf(" b : %x \n", &b); * : 12ff60,
More informationMicrosoft PowerPoint - 08-C-App-19-Quick-Preprocessor
19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색
More information<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력
More informationMicrosoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]
Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More information제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 11 장포인터 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습합니다.
More informationC 프로그래밊 개요
구조체 2009 년 5 월 19 일 김경중 강의계획수정 일자계획 Quiz 실습보강 5 월 19 일 ( 화 ) 구조체 Quiz ( 함수 ) 5 월 21 일 ( 목 ) 구조체저녁 6 시 5 월 26 일 ( 화 ) 포인터 5 월 28 일 ( 목 ) 특강 (12:00-1:30) 6 월 2 일 ( 화 ) 포인터 Quiz ( 구조체 ) 저녁 6 시 6 월 4 일 ( 목
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More informationMicrosoft PowerPoint - additional01.ppt [호환 모드]
1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능
More information목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2
제 7 장. 배열 목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2 배열의개요 배열 (array) 의정의 같은데이터형을가지는여러개의변수를하나의배열명으로공유 기억공간을순차적으로할당받아사용하는것 [ 7.1] C 3 배열의개요 배열 (array) 의필요성 같은데이터형의여러개의변수간결하게선언 기억공간을순차적으로변수의값들을저장, 관리
More informationMicrosoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers
C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.
More informationMicrosoft PowerPoint - chap04-연산자.pptx
int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에
More information슬라이드 1
3 장. 선행자료 어휘원소, 연산자와 C 시스템 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2019-1 st 프로그래밍입문 (1) 2 목차 1.1 문자와어휘원소 1.2 구문법칙 1.3 주석 1.4 키워드 (Keyword) 1.5 식별자 (Identifier) 1.6 상수 (Integer,
More information3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터
- Part2-3 3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터 3.1 포인터란 ü ü ü. ü. ü. ü ( ) ? 3.1 ü. ü C ( ).? ü ü PART2-4 ü ( ) PART3-4 3.2 포인터변수의선언과사용 3.2 포인터 변수의 선언과 사용 (1/8) 포인터 변수의
More informationMicrosoft PowerPoint - chap06-8 [호환 모드]
2011-1 학기프로그래밍입문 (1) 참고자료 chap 6-8. 메모리동적할당 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 동적할당의필요성 프로그램을작성하는단계에서필요한기억공간의크기를결정하는 것은정적할당이다. - 변수나배열의선언
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More informationMicrosoft PowerPoint - chap13-입출력라이브러리.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,
More informationSlide 1
SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 6. 구조체와클래스 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 구조체 구조체형 함수매개변수로서의구조체 구조체초기화 클래스 정의, 멤버함수 public 과 private
More informationMicrosoft PowerPoint - chap-03.pptx
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에
More information쉽게 풀어쓴 C 프로그래밍
제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using
More information비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2
비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More informationC 언어와 프로그래밍 개요
2019-1 st 프로그래밍입문 (1) 2 장. C 프로그램기본 박종혁교수 서울과학기술대학교컴퓨터공학과 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 주석 (Comment)
More informationPowerPoint 프레젠테이션
C 언어포인터정복하기 16 강. 포인터로자료구조화하기 TAE-HYONG KIM COMPUTER ENG, KIT 2 학습내용 구조체멤버와구조체포인터멤버 다른구조체 ( 변수 ) 를가리키는구조체 ( 변수 ) 연결된리스트 의구성및관리 포인터로 연결된리스트 탐색하기 3 중첩구조체에자료저장하기 중첩된구조체변수에값저장하기 struct person { char PRID[15];
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 변수와상수의개념에대해알아본다.
More informationA Hierarchical Approach to Interactive Motion Editing for Human-like Figures
단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More informationMicrosoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
More information03장.스택.key
---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 3 장 : 변수와데이터형 2012 년 이은주 학습목표 변수와상수의개념에대해알아본다. 리터럴상수, 매크로상수, const 변수에대해알아본 다. C 언어의데이터형에대해알아본다. 2 목차 변수와상수 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3 변수와상수 변수 : 값이변경될수있는데이터 상수 : 값이변경될수없는데이터
More informationK&R2 Reference Manual 번역본
typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct
More informationMicrosoft PowerPoint - additional06.ppt [호환 모드]
보조자료 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park 복습 : Const 키워드왜사용? C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; //
More information