1 / 9

[ 변수 - 포인터 ] C 프로그래밍 간략 review

[ 변수 - 포인터 ] C 프로그래밍 간략 review. 담당교수 : 최 윤 정. 1. 변수 (variable) : 자료를 저장하기 위한 기억공간 , 예 : 그릇 , 가방 , 상자 …. int. 변수에 값을 저장하려면 ?. char ch = ‘A’;. ‘A’. int i = 125;. 변수를 사용하는 이유는 ?. ch. - 키보드에서 눌려지는 정보를 사용하려면 반드시 변수에 저장해서 써야 하고 , 변수를 사용하려면 먼저 만들어 줘야 한다 .  변수 선언 .

Download Presentation

[ 변수 - 포인터 ] C 프로그래밍 간략 review

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. [변수 - 포인터] C프로그래밍 간략review 담당교수 : 최 윤 정 .

  2. 1. 변수(variable) : 자료를 저장하기 위한 기억공간 , 예: 그릇, 가방, 상자…. int 변수에 값을 저장하려면? char ch = ‘A’; ‘A’ inti= 125; 변수를 사용하는 이유는? ch • - 키보드에서 눌려지는 정보를 사용하려면 반드시 변수에 저장해서 써야 하고, • 변수를 사용하려면 먼저 만들어 줘야 한다.  변수 선언. • 밥 그릇, 국 그릇처럼 변수에도 용도별 종류가 있고, 크기의 차이가 있다. • inti = 7; • char c; • float f; 문자형 변수 (1 byte) float f = 10.5; 10.5 20 125 135 변수값(데이터) i i i f i= i+ 10; 변수의 타입 변수의 이름 i = 20.1; 정수형 변수 (4 byte) 실수형 변수 (4 byte) 변수의 이름은? • 식별자(identifier): 구분해 주는 이름 • -변수 이름 • -함수 이름 intx =7; int sum=100; 값의 비교 : 참(1)vs. 거짓(0) • a == b : a 와 b 에 저장된 값이 같은가? • a != b : a 와 b 에 저장된 값이 다른가? • a && b : 그리고. •  a 와 b 모두 0이 아니어야 참. • a || b : 또는 •  a 와 b 중 하나에 0이있어도 참. 김영희 김철수

  3. 1-1. 변수와 조건,비교의 이해.*아래의 코드가 나타내는 의미를 그림이나말로 설명하세요. • i가 3 또는 6 또는 9 일 때만 j=0을, 아니면 j=100을 저장. •  if( i == 3 || || ) j=0; • else j = 100; • 3. 문자변수 c의 값이 ‘a’면 j=1을, 아니면 0 저장 •  . • . • 언제 잘 것인지 나타내는 알고리즘의 예) • 조건 : 배가 부르면 그만 먹자. 아니면 더 먹자 •  if (배가 부르다 == 참) Don’t’ Eat( ); • else Eat( ); • 변수 i의 값이 10 이면 j=1을, 아니면 0을 저장하려면 •  if(i== 10) j = 1; • else j = 0; int main(void) { • inti, j, result; • float f = 10.2; • char s = ‘e’; • i=1; • j=0; • result = i + 20; • result = i * j ; • result = (i && j); • result = (i || j); • result = ( i == 0); }

  4. 2. 함수(module,procedure): - 특정문제를 해결하기 위해 작성된 일의 단위. 기능별로 모듈화한 단위- 필요할 때마 호출해 쓴다.- 변수와 다른점은 단어 옆에( )가붙은 것은 모두 함수.!! main( ) . . . . . . . . 미리 만들어진, stdio.h에 들어있는 라이브러리 함수. printf( ) • main 함수 : 시스템이 가장먼저 읽어 들이는 ‘작업지시서’급의 주함수. • 일련의 작업들을 위한 명령어를 적는다. • main함수안에 적힌 명령어들은 위에서부터 순서대로 실행된다. • 단, 가장 맨 윗부분에는 필요한 변수들을 선언한다. • 함수가 필요하면 이름만 불러준다. • ---------------------------------------------------------------------- • int n1, n2, result; • printf(“Input number 1: \n”); • scanf(“%d”, &n1); • printf(“Input number 2: \n”); • scanf(“%d”, &n2); • result = sum(n1, n2); • printf(“n1과 n2의 합은 : %d”, result); • result = subtraction(n1, n2); • printf(“n1과 n2의 차는: %d”, result); . . . . 사용자가필요에 의해 만든 사용자 정의함수 a b 메시지를 모니터에 출력할 수 있도록 만들어진 함수 intsum(int a, int b) { int result; result a + b; return result; } result = a + b; result scanf( ) 키보드로부터 어떠한 값을 입력받을 수 있도록 만들어진 함수 Int subtraction(int a, int b) { int result; result a - b; return result; }

  5. 2-1. 함수의 의미, 역할의 이해** 아래의 설명과 그림을 보고 적절한 함수를 만들어보세요. • 반복문 • 주어진 조건에 대해 같은 작업을 반복하기 위한 명령 • 반복시킬 만한 조건&변수를 찾아내어 적용해야 한다. • for (조건) , while(조건) • for ( ) 의 예: • 0 : ***** • 1 : ***** • 2 : ***** • 3 : ***** • 4 : ***** • 5 : ***** • 구구단의 n 단을 출력하는 함수를 반복문으로 만들어 보세요 • n = 5 일 때, • 5 * 1 = 5 • 5 * 2 = 10 • .. • .. • .. • 5 * 9 = 45 • for ( i = 0 ; I < 6 ; i++ ) • { • printf(“ %d : ***** \n”, i ); • } inta int b intmult( ) { } result = a * b; void gugu( int n ) { } result • 영어 단어 Return : 되돌아가다. • 함수에서 • return ; 불려진곳으로 되돌아 가라. • return 1; 돌아갈 때 1을들고 가라. • return ‘a’; 돌아갈 때 ‘a’를 들고 가라. 1. 함수의 prototype과 역할이 아래와 같습니다. 적절하게 코딩 하세요. -prototype : intmult(int a, int b);

  6. 3. 배열 : 여러 변수들을 일렬(여러 층)로 연결해놓은 구조- 1차배열: 기차칸. 1칸, 2칸, 3칸 … , - 2차배열: 아파트 건물 하나 : 301호 = 3층 1호, - 3차배열: 아파트 단지 , 그 안에 건물이 여러 개. : 10동 204호 = 10동 2층 4호 • 다음 문자배열의 구조와초기화된 데이터의 상태를 그림으로 표시하고 설명하세요. • 주의:! 문자열의 끝에는 ‘종료코드=\0’가 들어감 • char str[3][6] = {“abcd”,“ABCD”, “!!!!”}; • 의미 : . • 따라서, . int grade[10]; 의미 : grade라는 기차에 칸이 10개, 그 속에 int가 저장된다. 따라서, index는 하나 = [열] : 0 ~ 9 까지 float s[3][5]; s 라는 건물은 3층 5칸. 그 속에 float가 저장된다. 따라서, index는 둘 = [행]: 0 ~ 2 까지, [열]: 0 ~ 4까지

  7. 3-1. 함수 + 배열 + 반복문의 이해 확인 //필요한 변수는 선언하세요 int sum( int a[3][3], int b[3][3]){ } inta[3][3] int b[3][3] result [ ][ ]= a[ ][ ] + b [ ][ ]; total + = result[ ][ ] total int sum( int a[3][3], int b[3][3]) ; 은 1) 2차배열두개를 입력으로(인자로) 받아, 서로 같은 위치의 원소끼리 더해 새로운 배열 result 에 저장한다. 2) 그리고, result 의 모든 원소의 값을 누적한 값 total을 return한다. 위 문제가 무엇을 하라는 것인지 그림으로 나타내세요. a, b, result의 배열을 그려 계산 방법을 표시하세요.

  8. 0x100 0x101 0x105 4. 포인터 : 위치를 기억하는 변수위치 : Memory(저장공간 ) 의 주소& 연산자: 변수로부터 주소를 추출 A char ch = ‘A’; inti=125 float f=10.5 125 0x100 0x101 0x105 char *p_ch; int*p_int; float *p_float; p_ch = &ch; p_int = &i; p_float = &f; 10.5 • 따라서, • ch == *p_ch == ‘A’ • i == *p_int ==125 • f ==*p_float == 10.5 0x100 0x120 0x105 0x128 0x101 0x124 포인터변수 선언 ‘A’ 125 10.5 p_float p_int p_ch f i ch • 문자열의 표현방법 • char str[4]=“abc”; • char *pstr=“abc”; • 사용방법은 같다. • printf(“%s”, str); • printf(“%s”, pstr); • 그러나,! • str과 str[0]의 위치는 같지만 • pstr과 pstr[0]의 위치는 다르다 포인터변수 초기화

  9. ’s’ ’\0’ ’\0’ ’\0’ ’n’ ’o’ ’n’ ’d’ ’o’ ’s’ ’e’ ’w’ ’s’ ’H’ ’e’ ’a’ ’m’ ’r’ ’t’ ’D’ ’o’ ’a’ ’r’ ’y’ ’e’ ’l’ ’F’ ’M’ ’i’ ’\0’ 0x5A13 0x5A14 0x5A15 0x5A16 0x5A17 0x5A18 0x5A19 suit[0] suit[1] suit[2] suit[3] 0xF451 0xF452 0xF453 0xF454 0xF455 0xF456 0xF457 0xF458 fixed size • 1차배열str안에 char(문자)가 들어있다 • charstr[4] vs. char *str[4] 4-1. 포인터와 배열의 이해확인 • 1차 배열 str안에 char *(문자(열)이 있는 주소)가 들어있다. 즉,개념상 2차배열 아래 변수로 표기한 값의 type과 값을 쓰세요. +1 +1 +1 +1 +1 +1 +4 +4 +4 • 0xAA00 • 0xBCD1 • 포인터 배열 char *suit[4]의 초기값에 따라 도식화 하면 위 그림과 같습니다. • 잘 보고 아래를 이해한 후, 옆의 1 ~ 14번까지의 문제를 풀어보세요. • &suit, 즉 suit의 시작주소는 0x1240, &suit[0], 즉 suit[0]의 시작주소도 0x1240 • suit[0] 의 값은 주소, 0x5A13 • *suit[0],즉 suit[0]안에들어있는 주소값을 따라가면 문자열“hearts”가 저장된 시작주소. • 문자열의 포인터를 요소로 하는 배열 : 배열안에 주소(address, pointer)가 저장되어 있다. • char *suit[ 4 ] = { "Hearts", "Diamonds", "money", "flowers" };

More Related