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

Exercise 340p


13. 다음 프로그램의 출력은 무엇인가?

1
2
3
4
5
6
7
8
9
10
int main(void)
{
    int a[10] = { 1, 2, 3, 4, 5, 6};
    int *p = a;
    int *q = a + 3;
    
    printf("%d\n", *(a+1));
    printf("%d\n", *(p+2));
    printf("%d\n", *(q+3));
}
cs

2

3

0



14. 다음 프로그램의 출력은 무엇인가?

1
2
3
4
5
6
7
8
9
10
11
12
void sub(int *);
int main(void)
{
    int a[10] = {  1, 2, 3, 4, 5, 6};
    sub(a);
    sub(a+2);
}
void sub(int *p)
{
    printf("%d\n", *p);
    printf("%d\n", p[2]);
}
cs

1

3

3

5



15. 다음의 각각의 문장에서 오류를 찾아보아라. 오류가 없을 수도 있다. 다음과 같이 변수들이 정의되어 있다고 가정한다.


int *p, *q = NULL;

int n;

int a[6] = { 1, 2, 3, 4, 5, 6};


⒜ *p = 100;                       p 초기화 x         

⒝ n = *q;                          q 초기화 x         

⒞ *p = &n;                        -        

⒟ p = &a;                         배열이름에  &사용불가     

⒠ a++;                             배열이름에 ++사용불가         

⒡ p = &a[3];                      -        

⒢ &n = p;                         주소에 포인터 저장불가        

⒣ p = &a[0]; p[2] = n;          -        

⒤ p = a + 2;                      -        

728x90
반응형