포인터

    <C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 10(16번~21번)

    16. [프로그램 8-17]의 compute_avg 함수는 전달된 인수를 배열로 선언하여 처리한다. compute_avg 함수가 포인터를 이용하여 처리하도록 수정하시오. #include #define N 4 double compute_avg(int *p); // 함수의 원형 선언 int main() { int notebook[N] = { 2507, 2232, 2009, 2890 }; int pen[N] = { 4527, 5370, 4923, 6097 }; double average; // 노트의 평균 판매수 구하기 average = compute_avg(notebook); printf("노트 평균 판매수: %.1lf \n", average); // 펜의 평균 판매수 구하기 average = compute..

    <C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 10(11, 12, 13, 14, 15)

    11. 다음 프로그램은 main의 두 정수 a와 b에 대해 나누기를 한 몫과 나머지를 quotient와 remainder에 구하여 출력하기 위한 것이다. 그러나 프로그램을 실행하면 잘못된 결과가 나온다. 프로그램에서 잘못된 곳을 찾아 이유를 설명하고 바르게 수정하시오. #include void division(int x, int y, int q, int r); int main(void) { int a = 75, b = 8, quotient, remainder; division(a, b, quotient, remainder); printf("%d / %d = %d\n", a, b, quotient); printf("%d %% %d = %d \n", a, b, remainder); return 0; } //..

    <C프로그래밍-새내기를 위한 첫 C 언어 책>연습문제 chapter 10(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

    1. 일반 변수와 포인터 변수가 저장하는 값의 차이점을 적으시오. 일반 변수는 프로그램에서 사용하는 데이터를 직접 저장하고, 포인터 변수는 데이터가 저장된 주기억장치의 주소를 저장한다. 2. 다음 코드와 같이 int형 변수 sum이 선언되어 있을 때 ptr이란 포인터 변수가 sum을 가리키게 한 후 ptr을 이용하여 sum에 저장된 값을 출력하도록 밑줄을 채우시오. int sum = 0; int* ptr;//ptr 선언 ptr = ∑//ptr이 sum을 가리키기 printf("sum = %d \n", *ptr);//ptr을 이용하여 sum 값을 출력하기 3. 다음 코드의 결과를 추정함으로써 무엇을 하기 위한 코드인지 적고 프로그램으로 완성하여 실행한 다음 추정한 결과와 실행결과를 비교해보시오. int a..

    (C언어) 배열과 함수, 배열과 포인터

    일반적인 매개 변수 #include int square(int a); int main(void) { int p = 16; int res = square(p); return 0; } int square(int a) { return a * a; } 일반적인 매개 변수는 함수가 실행되면 기억 장소가 할당된다. 위 예에서도 square 함수가 실행되면 a에 실제로 기억 장소가 할당되고 p값은 16이 저장된다. 배열 매개 변수 변수를 함수로 전달하듯이 배열도 함수로 전달할 수 있다. 다만 동작 방식이 조금 다르다. #include int square(int a[]); int main(void) { int p[3] = { 1,2,3 }; square(p); return 0; } int square(int a[]) ..