조금씩 꾸준히 완성을 향해

[C 언어] 포인터 배열 본문

기타 언어/C 언어

[C 언어] 포인터 배열

all_sound 2023. 3. 21. 00:45

포인터 배열

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

 

기존의 배열

char a[3] = {'a', 'b', 'c'};
printf("%s\n", a); //abc

char *str = "HELLO";
printf("%s\n", str); //Hello

 

포인터 배열

char *student[3] = {"aaa", "bbb", "ccc"};
printf("%s", *(student+1));  //bbb

※ %s : 문자열 출력(주소값을 받아 null 값이 나올 때까지 모든 문자열을 출력)


<예제 1>

#include <stdio.h>

int main() {
  char *array1[2] = {"Good morning", "C language"};
  printf("%s\n", array1[0]+5);  // %s - 문자열 출력: 주소값 받음 + null을 만날 때까지 모두 출력
  printf("%c\n", *(array1[1]+6));  // %c - 글자 하나 출력
}
  // morning
  // u

 

<예제 2>

#include <stdio.h>

int 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));
}
//1 -10 14

 

<예제 3>

#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", *arr[1] + **arr + 1);
}
// 37

 

 

 

 

 

 

※ 유튜브 흥달쌤 깨알 C언어 특강을 직접 정리한 내용입니다

'기타 언어 > C 언어' 카테고리의 다른 글

[C 언어] 배열 포인터  (0) 2023.03.22
[C 언어] 구조체(struct)  (0) 2023.03.22
[C 언어] 2차원 배열과 포인터  (0) 2023.03.18
[C 언어] 배열과 포인터  (0) 2023.03.18
[C 언어] scanf와 변수  (0) 2023.03.18