반응형
- c언어는 2차원 배열이라도 한줄에 들어 있다.
- [1] [1] = 100 (넣어라)
- [4] = 200
- 둘다 같은 자리에 숫자를 넣는거다.
- 이름이 2개씩 있는거다.
- new int [3] [3]
- 일자로 9개가 생기는거다.
- 해설요청게시판
- c언어 해설
#include<stdio.h>
#include<stdlib.h>
#define N 3
int main(void){
int (*in)[N], *out, sum = 0;
//int (*in) [3] =>배열이 있다.
//2차원 배열
//int[3][] arr; 같다.
//int *out;
//이런 배열이 있다. //1차원 배열
// == int[] arr; 같다. // * == [] 대괄호와 같다.
//int sum = 0; //이런 배열이 있다.
//총 3개의 배열이 있는 거다.
in =(int(*)[N])malloc(N*N*sizeof(int));
//malloc => new 이다.
//int[] arr = new int[4]; //16바이트이다.
//int => 4바이트 * 4 니까. 16바이트
//c언어는 new가 멀록 malloc 이다.
//malloc(4); => 4바이트
//malloc(16); => 16바이트 == int[] arr = new int[4];
//int * p = (int*)malloc(16); // == int[] arr = new int[4];
//(N*N*sizeof(int)) => 3 * 3 * 4 = 36
//결론
//in = malloc(35); 같다. // int[][]arr = new int[3][3];
//----------------------------------------
out = (int*)in;
//out과 in이 서로 같은 주소를 가지고 있다.
//int [][] arr = new int[3][3];
//int[][] temp = arr; //이렇게 한거다.
for(int i =0; i<N*N; i++) out[i]=i;
// 9바퀴 돌면서
// 이렇게 넣어도. 9칸에 0 1 2 | 3 4 5 | 6 7 8 이 들어간다.
//2차원 배열이라도. 한줄로 되어 있기 때문
//c언어는 2차원 배열이라도. 한줄에 들어있다.
//---------------------------------
for(int i=0; i<N; i++) sum+= in[i][i];
// 00 11 22
// 0 + 4 + 8 = 12
printf("%d",sum); //정답 12
return 0;
}
반응형
'코딩 > C언어' 카테고리의 다른 글
수업014_함수 ~ 수업015_함수와배열02 , 문제014_함수 ~ 문제015_함수와배열(1~3) (1) | 2025.07.03 |
---|---|
_11_교재 => 수업012_배열 ~ 수업012_배열03 , _11_문제 => 문제012_배열 ~ 문제012_배열08 (1~3) (1) | 2025.07.01 |
_11_교재 => 수업011_반복문 ~ 수업011_반복문03 , _11_문제 => 문제011_반복문 ~ 문제011_반복문12(1~3) (1) | 2025.06.27 |
c언어 - _01_교재=> 수업006_조건문 ~ 수업010_스위치02 , _01_문제 => 문제006_조건문 ~ 문제010_스위치02 (1~3) (1) | 2025.06.26 |
c언어 - _01_교재 (1) | 2025.06.25 |