본문으로 바로가기
728x90
반응형

Excercise 338p


6. 다음과 같은 선언이 주어졌을 때 다음 문장 중 문법적으로 틀린 것은? ( )


int i, j;

int *p, *q;


① p = &i;

② p = q;

③ ++(*p);

④ p = &q;



7. 다음의 빈칸을 채워라.

(a)        연산자는 변수의 주소를 반환한다.

(b)     *     연산자는 포인터가 가리키는 객체의 값을 반환한다. 

(c) 포인터가 아무것도 가리키고 있지 않는 경우에는     NULL(0)  값을 넣어두는 것이 좋다.

(d) C언어의 기본적인 ㅎ마수 호출 방법은 '         에 의한 호출' 이다.

(e) '참조에 의한 호출'을 구현하려면 변수의     주소    를 함수에 전달하여야한다.



8. 다음 문장이 참인지 거짓인지를 판단하여라.

(a) void 포인터에서는 간접 참조 연산자를 *를 적용할 수 없다.      -/ 거짓

(b) 주소 연산자는  상수나 수식에 적용할 수 있다.                      - 참 / 거짓

(c) 포인터에도 덧셈이나 뺄셈을 적용할 수 있다.                        - / 거짓

(d) 배열 이름을 포인터처럼 사용하여 배열 원소에 접근할 수 있다. - / 거짓

(e) int 포인터도 형변환을 통하여 char 포인터로 변경할 수 있다.    - / 거짓



9. 다음 설명에 맞는 문장을 작성하여라.

(a) int형을 가리키는 포인터 변수 pi 선언

                    int *pi;                                 

(b) double형을 가리키는 포인터 변수 pd 선언

                    double *pd;                           

(c) char형을 가리키고 변수 c의 주소로 초기화된 포인터 변수 pc선언

                    char *pc = &c;                       

(d) 배열 a[]의 시작 주소를 포인터 변수인 p에 대입하는 문장

                    p = a;                                 

(e) 배열 이름 a를 포인터처럼 사용하여 3번째 원소에 10을 대입하는 문장

                    *(a+3) = 10;                          

728x90
반응형