일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- TextFormField
- Chrome Developer Tools
- gestureRecognizers
- allowBackup
- Flutter
- 두 수의 나눗셈
- Set ID
- 입력 커서
- TCP/IP모델
- not working
- 크롬개발자도구
- runSpacing
- 웹뷰
- Flutter SDK
- project flow
- VerticalMultiDragGestureRecognizer
- StringUtils.isEmpty
- 에러
- StringUtils.isBlank
- foreground
- carousel slider
- 안드로이드
- freezed
- 안보내짐
- fullBackupContent
- 프로그래머스
- 앱
- 플루터
- Could not create service of type FileAccessTimeJournal using
- 플러터
- Today
- Total
흰오목눈이야 개발하자
[20181214] 2차원 배열 본문
arrTest.c
1. Int iary[10];
//한 개의 요소 à int
2. Int iarr[3][4];
//한 개의 요소: int[4]이고 이것이 3개 있다.
//int[4]가 한 덩어리다. // int iarr[ ][4]={{},{}};à알아서 2개로 인식함.
l 한 요소의 개수는 절대로 생략할 수 없다.
l 하나의 크기만 정확히 알면 된다. (행은 알아서 채워짐)
l 한 단위가 여러 개의 묶음으로 이루어진 것이다.
l Int iarr[3][4]
Iarr은 48byte
Int[4] à 16 byte
iarr[0] - 주소상수
|
iarr[1]
|
iarr[2]
|
||||||||||||
|
|
|
l 2차원에서 차원 하나 낮추면 그건 그냥 주소다.
arr -> 100 |
2차원주소임 |
arr[0] -> 100 |
1차원주소임 |
arr[1] -> 116 |
|
arr[2] -> 132 |
l 값이 같다고 같은 거 아님. 왜냐면 대표하는 메모리가 다름
l 포인터 변수 x가 가리키는 것은 한 개(한 덩어리)만 가리킨다.
l 1차원 전체를 관리할 필요가 없다.
Ex) arr[0][0]을 가리키지 arr[0] 전체를 가리키는 게 아님.
l 이 덩어리가
몇 개인지는 개발자들에게 책임이 있다.
arrTest2.c
<문제>3행4열
전제) main은 건들지 마시오. 함수만 완성해라. ( [*][3]에는 합계가 들어간다.)
값이 들어감 |
|
|
Total |
|
|
|
Total |
|
|
|
Total |
#include <stdio.h>
void input(int ary[][4],int rowcnt){ int colcnt = sizeof(ary[0]) / sizeof(ary[0][0]);
for(int i=0; i<rowcnt; i++){ int sum = 0;
for(int j=0; j<colcnt-1; j++){ scanf("%d",&ary[i][j]); sum += ary[i][j]; } ary[i][3] = sum; } } void output(int ary[][4], int rowcnt){ int colcnt = sizeof(ary[0]) / sizeof(ary[0][0]);
printf("rowcont: %d\ncolcnt: %d\n",rowcnt,colcnt); for(int i = 0; i<rowcnt; i++){ for(int j =0; j<colcnt; j++){ printf("%4d",ary[i][j]); //하나찍을때 칸을 4칸 확보하고 결과 출력한다. } printf("\n"); }
} int main(){ int ary[3][4]; //rowcnt 계산 후 int rowcnt = sizeof(ary) / sizeof(ary[0]);
input(ary,rowcnt); //입력만 받고 output(ary,rowcnt); //출력 } |
'C' 카테고리의 다른 글
[20181210]비트활용 && Shift (0) | 2018.12.10 |
---|---|
[20181207]정리해야함 (0) | 2018.12.10 |
[20181206]C 프로그램 설치+수의체계_비트 (0) | 2018.12.07 |