1 / 28

처음으로 배우는 C 프로그래밍

처음으로 배우는 C 프로그래밍. 제1부 기초 제3장 치환, 주소, 대화식 입력. 치환. 치환 연산자 : variable = operand 오른쪽에 있는 피연산자의 값을 왼쪽에 있는 변수에 저장 오른쪽 피연산자는 상수나 변수, 도는 유효한 수식이 될 수 있음 모든 연산자 중에 우선순위가 가장 낮음 왼쪽에는 반드시 하나의 변수가 있어야 함. 25. sum = 25 sum 에 저장된 정수 25. sum. 25. Old value is overwritten. New value is stored.

avery
Download Presentation

처음으로 배우는 C 프로그래밍

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 프로그래밍 제1부 기초 제3장 치환, 주소, 대화식 입력

  2. 치환 • 치환 연산자 : variable = operand • 오른쪽에 있는 피연산자의 값을 왼쪽에 있는 변수에 저장 • 오른쪽 피연산자는 상수나 변수, 도는 유효한 수식이 될 수 있음 • 모든 연산자 중에 우선순위가 가장 낮음 • 왼쪽에는 반드시 하나의 변수가 있어야 함 25 sum = 25 sum에 저장된 정수 25 sum 25 Old value is overwritten New value is stored 35 sum = sum + 10; 치환 연산자를 이용하여 sum에 새로운 값을 저장 처음으로 배우는 C 프로그래밍 제1부

  3. 치환 • 프로그램 3-1 # include <stdio.h> void main(void) { float length, width, area ; length = 27.2 ; width = 13.6 ; area = length * width ; printf (“The length of the rectangle is %f ”, length) ; printf (“\n The width of the rectangle is %f “, width) ; printf (“\n The area of the rectangle is %f ”, area) ; } 처음으로 배우는 C 프로그래밍 제1부

  4. 치환 • 프로그램 3-2 #include <stdio.h> void main(void) { int sum ; sum = 25 ; printf (“\nThe number stored in sum is %d.. “, sum) ; sum = sum + 10 ; printf (“\nThe number now stored in sum is %d. ”, sum) ; } 처음으로 배우는 C 프로그래밍 제1부

  5. Statement Value in sum sum = 0 ; 0 sum = sum + 96 ; 96 sum = sum + 70 ; 166 sum = sum + 85 ; 251 sum = sum + 60 ; 311 치환 • 치환 연산자의 양쪽에 같은 변수를 사용하는 치환문은 다음의 치환 연산자를 사용하여 재작성할 수 있음 • += -= *= /= %= • 누적 처음으로 배우는 C 프로그래밍 제1부

  6. 치환 • 프로그램 3-3 #include <stdio.h> void main(void) { int sum ; sum = 0 ; printf (“\nThe valuse of sum is initially set to %d. ”, sum) ; sum = sum + 96 ; printf (“ \n sum is now %d. ”, sum) ; sum = sum + 70 ; printf (“ \n sum is now %d. ”, sum) ; sum = sum + 85 ; printf (“ \n sum is now %d. ”, sum) ; sum = sum + 60 ; printf (“ \n The final sum is %d. “,sum) ; } 처음으로 배우는 C 프로그래밍 제1부

  7. Expression Alternative Expression Alternative i = i + 1 ++i i = i - 1 --i n = n + 1 ++n n = n - 1 --n count = count + 1 ++count count = count - 1 --count 치환 • 전위 증가 연산자 • k = ++n; n = n + 1; k = n • 후위 증가 연산자 • k = n++; k = n; n = n + 1; 처음으로 배우는 C 프로그래밍 제1부

  8. 치환 • 프로그램 3-4 #include <stdio.h> void main(void) { int count ; count = 0 ; printf (“\n The initial value of count is %d. ” , count) ; ++count ; printf (\n count is now %d. ” , count) ; ++count ; printf (\n count is now %d. ” , count) ; ++count ; printf (\n count is now %d. ” , count) ; ++count ; printf (\n count is now %d. ” , count) ; } 처음으로 배우는 C 프로그래밍 제1부

  9. One or More Bytes in Memory (depends on data type) Variable Contents Variable Address 주소 • 변수에 저장된 값은 변수의 내용이라고 하며, 변수를 위해 사용된 메모리의 첫 번째 주소를 그 변수의 주소라고 함 • 전형적인 변수 처음으로 배우는 C 프로그래밍 제1부

  10. 주소 • 프로그램 3-5 #include <stdio.h> main() { int num ; num = 22 ; printf (“The value stored in num is %d. ” , num) ; printf (“ \nThe computer uses %d bytes to stored this value”, sizeof(int)) ; } 처음으로 배우는 C 프로그래밍 제1부

  11. 2 Bytes of Memory xxxx 22 Address of First Byte Used by num Contents of num 주소 • 메모리의 한 부분 • 프로그램 3-6 #include <stdio.h> void main(void) { int num; num = 22; printf (“num = %d The address of num is %p. ”, num, &num); } 처음으로 배우는 C 프로그래밍 제1부

  12. 2 Bytes of Memory FFE0 22 address of rirst byte used by num Contents of num 주소 • 변수 num의 완전한 표현 처음으로 배우는 C 프로그래밍 제1부

  13. Variable Contents Num_addr Address of num Variable Contents Address of m d Address of list tab_point Address of ch chr_point 주소 • 선언된 변수의 주소를 저장하는 방법 num_addr = &num; • num의 주소를 num_addr에 저장 • 주소 저장 처음으로 배우는 C 프로그래밍 제1부

  14. FFAA The Contents of y is an Address A Pointer Variable y : The Contents of Address FFAA is qqqq qqqq FFAA 주소 • 저장된 주소의 사용방법 • 포인터 앞에 * 기호가 사용되면, 주소가 그 포인터에 저장되어 있는 변수를 의미 *num_addr 처음으로 배우는 C 프로그래밍 제1부

  15. A Pointer to a Character One Byte is Retrieved An Address A Pointer to an Integer Two Bytes are Retrieved An Address A Pointer to a Floating Point Number Four Bytes are Retrieved An Address 주소 • 포인터의 선언 • int *num_addr; • 포인터를 사용한 서로 다른 데이터 형의 주소 지정 처음으로 배우는 C 프로그래밍 제1부

  16. 주소 • 프로그램 3-7 #include <stdio.h> void main(void) { int *num_addr; /* declare a pointer to an int */ int miles, dist; /* declare two integer variables */ dist = 158; /* store the number 158 into dist */ miles = 22; /* store the number 22 into miles */ num_addr = &miles; /* store the ‘address of miles’ in num_addr */ printf (“The address stored in num_addr is %p\n”, num_addr); printf (“The value pointed to by num_addr is %d\n\n”, *num_addr); num_addr = &dist; /* now store the address of dist in num_addr */ printf (“The address now stored in num_addr is %p\n”, num_addr); printf (“The value now pointed to by num_addr is %d\n”, *num_addr); } 처음으로 배우는 C 프로그래밍 제1부

  17. scanf() 함수 • 프로그램 3-8 #include <stdio.h> void main(void) { float num1, num2, product ; num1 = 300.0 ; num2 = .05 ; product = num1 * num2 ; printf (“%f times %f is %f ”, num1, num2, product) ; } • 프로그램 3-9 #include <stdio.h> void main(void) { printf (“%f times %f is %f ”, 300.0, .05, 300.0 * .05) ; } 처음으로 배우는 C 프로그래밍 제1부

  18. #include <stdio.h> void main(void) { scanf ( ) printf ( ) } Keyboard Screen scanf() 함수 • scanf()와 printf()함수 처음으로 배우는 C 프로그래밍 제1부

  19. scanf() 함수 • 프로그램 3-10 #include <stdio.h> void main(void) { float num1, numm2, product ; printf (“Please type in a number: ”) ; scanf (“%f”, &num1) ; printf (“Please type in another number: ”) ; scanf (“%f”, &num2) ; product = num1 * num2 ; printf (“ %f times %f is %f ”, num1, num2, product); } 처음으로 배우는 C 프로그래밍 제1부

  20. 버퍼 입력을 갖는 scanf() • 프로그램 3-11 #include <stdio.h> void main(void) { char fkey ; printf (“type in a character: ”) ; scanf (“ %c”, &fkey) ; printf (“the keystrocke just accepted is %d ”, fkey) ; } 처음으로 배우는 C 프로그래밍 제1부

  21. 버퍼 입력을 갖는 scanf() • 프로그램 3-12 #include <stdio.h> void main(void) { char fkey, skey ; printf (“Type in a character : ”) ; scanf (“%c”, &fkey) ; printf (The keystroke just accepted is %d ”, fkey) ; printf (“\nType in another character: ”) ; scanf (“%c”, &skey) ; printf (The keystroke just accepted is %d ”, skey) ; } 처음으로 배우는 C 프로그래밍 제1부

  22. Each Character is Sent to a Buffer As It is Typed H e l l o \n Keyboard 버퍼 입력을 갖는 scanf() • 입력된 키보드 문자는 우선 버퍼에 저장됨 처음으로 배우는 C 프로그래밍 제1부

  23. 버퍼 입력을 갖는 scanf() • 프로그램 3-13 #include <stdio.h> void main(void) { char fkey, skey ; printf (“Type in a character: ”) ; scanf (“ %c %c”, &fkey, &skey) ; /* the enter code goes to skey */ printf (“the keystrocke just accepted is %d ”, fkey) ; printf (“\nType in another character: ”) ; scanf (“%c”, &skey) ; /* accept another code */ printf (The keystroke just accepted is %d ”, skey) ; } 처음으로 배우는 C 프로그래밍 제1부

  24. 기호 상수 • 리터럴 : 프로그램 내에서 그 값이 명확히 구별되는 데이터 2 3.14 • #define • 숫자를 기호명으로 정의 • #define SAESTEX 0.05 • #define PI 3.141592 처음으로 배우는 C 프로그래밍 제1부

  25. 기호 상수 • 프로그램 3-14 #define SALESTAX 0.05 #include <stdio.h> void main(void) { float amount, taxes, total; printf (“\nEnter the amount purchased: ”) ; scanf (“ %f”, &amount) ; taxes = SALESTAX * amount ; total = amount + taxes ; printf (“The sales tax is $%4.2f ”, taxes) ; printf (\nThe total bill is $%5.2f ”, total) ; } 처음으로 배우는 C 프로그래밍 제1부

  26. 기호 상수 • 프로그램 3-15 #define SALESTAX 0.05 #define BEGIN { #define END } #include <stdio.h> void main(void) BEGIN float amount, taxes, total; printf (“\nEnter the amount purchased: ”) ; scanf (“ %f”, &amount) ; taxes = SALESTAX * amount ; total = amount + taxes ; printf (“The sales tax is $%4.2f ”, taxes) ; printf (\nThe total bill is $%5.2f ”, total) ; END 처음으로 배우는 C 프로그래밍 제1부

  27. 일반적인 프로그래밍 오류 • 모든 변수는 식에서 사용되기 전에 초기화 값을 대입해야 함 • 증가 또는 감소 연산자를 식에서 사용할 경우 주의해야 함 • 포인터로 선언되지 않은 변수에 주소를 저장해서는 안됨 • scanf()함수에는 주소를 넘져주어야 함 • scanf()함수의 제어 문자열에는 메시지가 포함되지 않음 • scanf()함수 호출시 입력될 데이터 값에 따라 정확한 제어문자를 포함해야 함 • scanf()함수에 넘겨지는 제어 문자열을 이중따옴표로 닫아야 하며, 모든 인자는 쉼표로 구분해야 함 • #define문은 세미콜론으로 끝나지 않음 • 동일한 문장에서 한 번 이상 나타나는 변수에 증가, 감소 연산자를 사용하면 안됨 처음으로 배우는 C 프로그래밍 제1부

  28. 요약 • 치환연산자 • 주소의 저장과 주소를 저장할 수 있는 변수의 선언 • 포인터의 활용 • scanf()함수 • 기호상수(리터럴) 처음으로 배우는 C 프로그래밍 제1부

More Related