조금씩 꾸준히 완성을 향해

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

기타 언어/C 언어

[C 언어] 배열 포인터

all_sound 2023. 3. 22. 16:25

배열 포인터

 

▶example 1

int (*in)[2]; //배열포인터 생성: (논리적으로) 배열을 2개씩 자름
int num[3] = {1,2,3};
in = num;

printf("%d\n", in); //100(주소값이 100이라고 가정)
printf("%d\n", num); //100
printf("%d\n", *in); //100
printf("%d\n", **in); //1
printf("%d\n", *(*in+1)); //2
printf("%d\n", *(*in+2)); //3
printf("%d\n", *in[1]); //3

 

▶example 2

int (*in)[4]; //배열포인터 생성: (논리적으로) 배열을 4개씩 자름
int num[3][3] = {1,2,3,4,5,6,7,8,9};
in = num;

printf("%d\n", **in); //1
printf("%d\n", *(*in+1)); //2
printf("%d\n", **(in+1)); //5

<예제>

#include <stdio.h>
#include <stdlib.h>
#define N 3

int main(void){
  int (*in)[N], *out, sum=0;
  in = (int (*)[N]) malloc(N * N * sizeof(int)); 
  out = (int *)in;
  for(int i=0; i < N*N; i++) out[i] = i;
  for(int i=0; i < N; i++)
    sum += in[i][i];
  printf("%d", sum);
  return 0;
}
// 12

▶ molloc: 동적으로 메모리 할당

 sizeof(int) = 4byte (이 문제에선 크게 신경 x)
 

 

 

 

 

 

 

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

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

[C 언어] 함수 주소 전달 & 주소 리턴  (0) 2023.03.26
[C 언어] 함수  (0) 2023.03.22
[C 언어] 구조체(struct)  (0) 2023.03.22
[C 언어] 포인터 배열  (1) 2023.03.21
[C 언어] 2차원 배열과 포인터  (0) 2023.03.18