-Part2- 제1장 1차원 배열이란 무엇인가.

Slides:



Advertisements
Similar presentations
제6장 조건문.
Advertisements

2007 1학기 12 배열.
데이터의 표현과 연산 (1) (Chapter 3)
슬라이드 1~21까지는 각자 복습! 슬라이드 22부터는 수업시간에 복습
쉽게 풀어쓴 C언어 Express 제5장 수식과 연산자 C Express Slide 1 (of 34)
쉽게 풀어쓴 C언어 Express 제11장 포인터 C Express.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
2014 ITA 8월 강의 C Programming -1주차- C언어 기초 정대진 ( )
-Part3- 제3장 콘솔 입출력과 파일 입출력.
C 프로그래밍.
C 10장. 함수의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
C언어: 배열 (Arrays).
컴퓨터의 기초 제 4강 - 표준 입출력, 함수의 기초 2006년 4월 10일.
6장. printf와 scanf 함수에 대한 고찰
누구나 즐기는 C언어 콘서트 제4장 수식과 연산자.
-Part3- 제5장 전처리기와 파일 분할 컴파일
8장 포인터.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 7장. 배열과 문자열 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
쉽게 풀어쓴 C언어 Express 제3장 C프로그램 구성요소 C Express.
C 프로그래밍.
7장 배열 배열의 정의 배열의 초기화 1차원 배열 2차원 및 다차원 배열 문자 배열 배열과 구조.
10장 포인터와 문자열 포인터 기본 배열과 포인터 매개변수 전달방법 포인터와 문자열.
변수와 자료형.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
6장 배열.
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
5장. 상수와 기본 자료형. 5장. 상수와 기본 자료형 5-1 C 언어가 제공하는 기본 자료형 자료형(data type) 기본 자료형 사용자 정의 자료형 int val; "선언할 변수의 특징을 나타내기 위한 키워드" 기본 자료형 기본적으로 제공이 되는 자료형 사용자.
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
13. 포인터와 배열! 함께 이해하기.
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
C언어 프로그래밍의 이해 Ch13. 선행처리기와 주석문.
자전거를 배우려면 안장에 올라가 페달을 밟아라.
11장. 1차원 배열 IT응용시스템공학과 김 형 진 교수.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
컴퓨터 프로그램 제2,3장 간단한 C 프로그램 김 문 기.
게임프로그래밍 I - 1차원 배열 - 공주대학교 게임디자인학과 박 찬 교수 2011년 4월 25일.
Chapter 11. 배열과 포인터.
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
제 3장 데이터형과 연산자 Hello!! C 언어 강성호 김학배 최우영.
포인터.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
-Part1- 제7장 반복문이란 무엇인가.
-Part1- 제6장 자료형이란 무엇인가.
18장. 다차원 배열 그리고 포인터.
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
컴퓨터 프로그램은 여러 기능의 복합체이다. 라이브러리 함수와 사용자 정의 함수
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
-Part2- 제2장 다차원 배열이란 무엇인가.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
3주차: Control Flow and Others
어서와 C언어는 처음이지 제16장.
argc, argv 의 사용방법 #include <stdio.h>
C 4장. 연산자 #include <stdio.h> int main(void) { int num;
C.
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
개정판 누구나 즐기는 C언어 콘서트 제3장 변수와 자료형 출처: pixabay.
Chapter 09. 배열.
어서와 C언어는 처음이지 제22장.
배열, 포인터, 함수 Review & 과제 1, 2.
11장. 1차원 배열.
Presentation transcript:

-Part2- 제1장 1차원 배열이란 무엇인가

학습목차 1.1 1차원 배열이란 1.2 1차원 배열의 주소와 값의 참조

1.1 1차원 배열이란

1.1 1차원 배열이란 (1/12) 배열이란 같은 자료형을 가진 연속된 메모리 공간으로 이루어진 자료구조 같은 자료형을 가진 변수들이 여러 개 필요할 때 사용 많은 양의 데이터를 처리할 때 유용 #include <stdio.h> int main(void) { // int형 변수 30개 int student1, student2, … , student30; … return 0; } #include <stdio.h> int main(void) { // int형 배열 int student[30]; … return 0; } //코드의 길이가 짧아짐 //가독성 향상

1.1 1차원 배열이란 (2/12) 배열의 선언 자료형: 배열의 자료형을 지정 배열 이름: 변수 이름과 마찬가지로 배열을 구분하는 이름 배열 길이: 배열 요소의 총 길이(10개의 변수를 배열로 구성)

1.1 1차원 배열이란 (3/12) 배열 요소의 위치 0부터 시작

1.1 1차원 배열이란 (4/12)---[1-1.c 실습] #include <stdio.h> int main(void) { int student[5]; student[0] = 90; student[1] = 80; student[2] = 70; printf("첫 번째 학생의 점수 : %d \n", student[0]); printf("두 번째 학생의 점수 : %d \n", student[1]); printf("세 번째 학생의 점수 : %d \n", student[2]); printf("네 번째 학생의 점수 : %d \n", student[3]); printf("다섯 번째 학생의 점수 : %d \n", student[4]); return 0; } 클릭

1.1 1차원 배열이란 (5/12)---[1-1.c 분석] int student[5]; student[0] = 90;

1.1 1차원 배열이란 (6/12)---[1-2.c 실습] #include <stdio.h> int main(void) { int array1[5] = {90,80,70,60,50}; // 배열 선언 과 동시에 저장(초기화) int array2[ ] = {90,80,70,60,50}; int array3[5] = {90,80,70}; printf("%d %d %d %d %d \n", array1[0],array1[1],array1[2],array1[3],array1[4]); array2[0],array2[1],array2[2],array2[3],array2[4]); array3[0],array3[1],array3[2],array3[3],array3[4]); return 0; }

1.1 1차원 배열이란 (7/12)---[1-2.c 분석] int array1[5] = {90,80,70,60,50};

1.1 1차원 배열이란 (8/12)---[1-3.c 실습] #include<stdio.h> int main(void) { int array[3]={87,99,80}; int total=0; total=array[0]+array[1]+array[2]; printf("총점은 %d 이고 ", total); printf("평균은 %.2lf 입니다\n", (double)total/3); return 0; }

1.1 1차원 배열이란 (9/12)---[1-4.c 실습] #include<stdio.h> int main(void) { int array[3]={87,65,78}; int i, total=0; for(i=0; i<3; i++) total = total + array[i]; printf("배열의 요소 array[%d]의 값: %d \n", i, array[i]); } printf("총점은 %d 이고 ", total); printf("평균은 %.2lf 입니다\n", (double)total/3); return 0;

1.1 1차원 배열이란 (10/12) 배열 선언 시 주의할 점 ‘배열 요소는 0부터 시작한다.’ #include <stdio.h> int main(void) { int array[2]; // 배열 길이는 2 array[0]=1; // 배열 요소는 0부터 시작 array[1]=2; array[2]=3; // 에러 return 0; }

1.1 1차원 배열이란 (11/12) 배열 선언 시 주의할 점 ②‘배열 초기화를 중괄호로 할 때 배열의 선언과 초기화가 개별적으로 이루어져서는 안 된다.’ #include <stdio.h> int main(void) { int array1[3]={10, 20, 30}; // 정상적인 초기화 방법 int array2[3]; array2={10, 20, 30}; // 에러 발생 return 0; }

1.1 1차원 배열이란 (12/12) 배열 선언 시 주의할 점 ③‘배열 길이를 변수로 설정하면 안 된다.‘ - ‘배열의 길이는 상수로 설정해야 한다.’ #include <stdio.h> #define MAX 10 // 심볼릭 상수 선언 int main(void) { int a=3; const int SIZE=20; // 심볼릭 상수 선언 int array1[MAX]; // 정상: 배열 길이를 심볼릭 상수로 설정 int array2[SIZE]; // 정상: 배열 길이를 심볼릭 상수로 설정 int array3[a]; // 에러: 배열 길이를 변수로 설정 return 0; }

1.2 1차원 배열의 주소와 값의 참조

1.2 1차원 배열의 주소와 값의 참조 (1/12) ‘&는 주소를 참조하는 연산자이다.’ & 연산자(주소 연산자) 메모리 공간의 주소를 표현 변수의 주소 표현 배열의 주소 표현 사용법: &변수이름 사용법: &배열 요소의 위치 int a=10, b=20; printf(“%x \n”, &a); // a의 주소 printf(“%x \n”, &b); // b의 주소 int array[2] = {10, 20}; printf(“%x \n”, &array[0]); // array[0]의 주소 printf(“%x \n”, &array[1]); // array[1]의 주소

1.2 1차원 배열의 주소와 값의 참조 (2/12)---[1-5.c 실습] #include<stdio.h> int main(void) { int array1[3] = {1,2,3}; char array2[3] = {'A','B','C'}; printf("%x %x %x \n", &array1[0], &array1[1], &array1[2]); printf("%x %x %x \n", &array2[0], &array2[1], &array2[2]); return 0; } 1 2 3 &array1[0] array1[0] array1[1] array1[2] &array1[1] &array1[2] A B C &array2[0] array2[0] array2[1] array2[2] &array2[1] &array2[2] &가 가운데 있고, 요소값이 맞지 않음

1.2 1차원 배열의 주소와 값의 참조 (3/12)---[1-5.c 분석] ‘주소를 나타내는 숫자 상수는 운영체제나 개발 SW 마다 다르다.’

1.2 1차원 배열의 주소와 값의 참조 (4/12) ‘배열 이름은 배열의 시작 주소이다.’

1.2 1차원 배열의 주소와 값의 참조 (5/12)---[1-6.c 실습] #include<stdio.h> int main(void) { int array[3] = {1,2,3}; printf("%x %x %x \n", array+0, array+1, array+2); printf("%x %x %x \n", &array[0], &array[1], &array[2]); return 0; } 1 2 3 &array[0] == array+0 array[0] array[1] array[2] &array[1] == array+1 &array[2] == array+2 주소값 틀림 (20페이지)

1.2 1차원 배열의 주소와 값의 참조 (6/12)---[1-6.c 분석]

1.2 1차원 배열의 주소와 값의 참조 (7/12)---[1-7.c 실습] #include<stdio.h> int main(void) { char array[3] = {'A','B','C'}; printf("%x %x %x \n", array+0, array+1, array+2); return 0; } A B C &array1[0] == array+0 array1[0] array1[1] array1[2] &array1[1] == array+1 &array1[2] == array+2

1.2 1차원 배열의 주소와 값의 참조 (8/12)---[1-7.c 분석]

1.2 1차원 배열의 주소와 값의 참조 (9/12) * 연산자 변수의 값 참조 배열 요소의 값 참조 사용법: *&변수이름 메모리의 주소 앞에 사용된 경우 ‘ *는 메모리 공간에 저장된 값을 참조하는 연산자이다.’ 변수의 값 참조 배열 요소의 값 참조 사용법: *&변수이름 사용법: *&배열 요소 int a=10, b=20; printf(“%d \n”, *&a); // a의 값printf(“%d \n”, *&b); // b의 값 int array[2] = {10, 20}; printf(“%d \n”, *&array[0]); // array[0]의 값 printf(“%d \n”, *&array[1]); // array[1]의 값

1.2 1차원 배열의 주소와 값의 참조 (10/12)---[1-8.c 실습] #include<stdio.h> int main(void) { int array[3] = {1,2,3}; printf("%x %x %x \n", &array[0], &array[1], &array[2]); printf("%d %d %d \n", *&array[0], *&array[1], *&array[2]); printf("%d %d %d \n", array[0], array[1], array[2]); printf("%d %d %d \n", *&*&array[0], *&*&array[1], *&*&array[2]); return 0; } 1 2 3 &array[0] *&array[0] == array[0] *&array[1] == array[1] *&array[2] == array[2] &array[1] &array[2]

1.2 1차원 배열의 주소와 값의 참조 (11/12)---[1-8.c 분석]

1.2 1차원 배열의 주소와 값의 참조 (12/12)---[1-9.c 실습] #include<stdio.h> int main(void) { int array[3] = {1,2,3}; printf("%x %x %x \n", array+0, array+1, array+2); printf("%d %d %d \n",*(array+0),*(array+1),*(array+2)); printf("%d %d \n", *(array+0), *array); return 0; } 1 2 3 array+0 array[0] == *(array + 0) array[1] == *(array + 1) array[2] == *(array + 2) array+1 array+2

1 2 3 결론: 반드시 숙지해야 할 사항(1) int array[3]={1,2,3}; array+0

1 2 3 결론: 반드시 숙지해야 할 사항(2) int array[3]={1,2,3}; &array[0]

결론: 반드시 숙지해야 할 사항(3) *array == *(array+0) == array[0]

공부한 내용 떠올리기 배열의 정의와 필요성 배열의 선언과 구성 요소 배열에 데이터를 저장하는 방법 배열을 선언할 때 주의할 사항 배열 이름은 배열의 시작 주소 주소와 값을 참조하는 연산자 & 연산자 * 연산자