정보처리기사/[흥달쌤] 실기_깨알 C언어

C언어 특강 / 29, 30. 2차원 배열과 포인터(1),(2), 31~34. 포인터배열(1)~(4)

web_seul 2022. 5. 31. 22:37
반응형

29강. 2차원 배열과 포인터(1)

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

a = 100

a[0] 100 1 (100) 2 (101)
a[1] 102 3 (102) 4 (103)
a[2] 104 5 (104) 6 (105)

printf("%d\n", a); //100

printf("%d\n", *a); //100

printf("%d\n", **a); //1

 

문) 다음 C프로그램의 실행 결과로 옳은 것을 고르시오

#include<stdio.h>
int main(){
  int data[][3] = {1,3,4,5,2,9,6,8,7};
  int *p = data[1];
  int x, y;
  x = *p;
  y = *(p+2);
  printf("x=%d, y=%\n", x, y);
}

 

30강. 2차원 배열과 포인터(2)

문) 다음 C프록램의 출력 값은?

#include<stdio.h>
int main(){
  int darr[3][3] = {{1,2,3}, {4,5,6}, {7,8,9}};
  int sum1, sum2;
  sum1 = *(*darr+1) + *(*darr+2);
  sum2 = *darr[1] + *darr[2];
  printf("%d, %d", sum1, sum2);
}

 

31강. 포인터 배열(1)

* 포인터 배열 : 배열의 요소가 포인터(메모리주소)로 이루어진 것

char a[3]= {'a', 'b', 'c'];

a = 100

a b c

printf("%s\n", a);  //abc

- - - - - - - - -

char *str = "Hello";

str = 100 

H e l l o

printf("%s\n", str);  //Hello

- - - - - - - - -

char *student[3] = {"aaa", "bbb", "ccc"};

student = 100

20 30 40
20 a a a
30 b b b
40 c c c

 

문) 다음 C프로그램의 실행 결과는?

#include<stdio.h>
int main(){
  static char *c[] = {"aaa", "bbb", "ccc"};
  printf("%s", *(c+1));
}

 

32강. 포인터 배열(2)

문) 다음 C프로그램의 실행 결과는?

#include<stdio.h>
int main(){
  char *array1[2] = {"Good morning", "C language"};
  printf("%s\n", array1[0] + 5);
  printf("%c\n", *(array[1] + 6));
}

 

33강. 포인터 배열(3)

문) 다음 C프로그램의 실행 결과는?

void main(){
  int a[2][3] = {{-3, 14, 5}, {1, -10, 8}};
  int *b[] = {a[0], a[1]};
  int *p = b[1];
  printf("%d", *b[1]);
  printf("%d", *(++p));
  printf("%d", *(--p-2));
}

 

34강. 포인터 배열(4)

문) 다음 C언어에 대한 알맞는 출력값을 쓰시오

#include<stdio.h>
int main(){
  int *arr[3];
  int a = 12, b = 24, c = 36;
  arr[0] = &a;
  arr[1] = &b;
  arr[2] = &c;
  
  printf("%d\n", *arr[1] + **arr + 1);
}

 

반응형