본문 바로가기

프로그래밍 언어/C언어

C언어 - 배열 문법

이전 글에서 작성한 코드를 기반으로 배열의 문법에 대해서 공부해보자.

 

#include <stdio.h>

int ten(int k) {
	int j;
	int b = 1;
	
	for (j = 0; j < k; j++)
		b *= 10;
	return b;
}

int digit(char a[4], int n) {
	int i;
	int b = 1;
	int s = 0;

	for (i = 0; i < n; i++) {
		a[i] -= '0';
		b = ten(n - i - 1);
		s = s + a[i] * b;
	}return s;
}

int main() {
	int s;
	int n = 4;
	char a[4] = { '1', '2', '3', '4' };

	s = digit(a, n);
	printf("%d", s);
}

 

 

첫 번째.

 

 

그래서 코드를 다시한번 작성해본다면,

#include <stdio.h>

int ten(int k) {
	int j;
	int b = 1;
	
	for (j = 0; j < k; j++)
		b *= 10;
	return b;
}

int digit(char a[], int n) {	//12번째 줄
	int i;
	int b = 1;
	int s = 0;

	for (i = 0; i < n; i++) {
		a[i] -= '0';
		b = ten(n - i - 1);
		s = s + a[i] * b;
	}return s;
}

int main() {
	int s;
	int n = 4;
	char a[] = { '1', '2', '3', '4' };		//27번째 줄

	s = digit(a, n);
	printf("%d", s);
}

 

12 번째 줄과 27 번째줄의 a[4] 를 a[] 로 4를 생략하였다.

 

 

 

세 번째.

 

const 함수를 쓸 경우 n은 변수가 아닌 상수로 간주된다.

 

 

이게 무슨 말이면..

 

만약 const int n = 4; 라고 선언한다면 n 은 4의 값에서 바뀔 수 없다.

 

 

#include <stdio.h>

int main() {
	const int a = 10;

	a += 7;
	printf("%d", a);
}

 

const int a = 10; 이라고 선언하면 10의 값에서 바뀔 수 없으며

 

7을 더한다면 오류가 발생한다.

 

 

 

네 번째.

 

 

 

#include <stdio.h>
#define N 4

int ten(int k) {
	int j;
	int b = 1;
	
	for (j = 0; j < k; j++)
		b *= 10;
	return b;
}

int digit(char a[], int n) {
	int i;
	int b = 1;
	int s = 0;

	for (i = 0; i < n; i++) {
		a[i] -= '0';
		b = ten(n - i - 1);
		s = s + a[i] * b;
	}return s;
}

int main() {
	int s;
	int n = 4;
	char a[N] = { '1', '2', '3', '4' };

	s = digit(a, n);
	printf("%d", s);
}

 

 

 

 

 

 

https://book.naver.com/bookdb/book_detail.nhn?bid=8187381

'프로그래밍 언어 > C언어' 카테고리의 다른 글

C언어 - 전역변수, 지역변수  (0) 2021.02.06
C언어 - 숫자 표현 범위  (0) 2021.02.03
C언어 - 배열과 함수  (0) 2021.01.24
C언어 - 배열의 시작  (0) 2021.01.20
C언어 - 아스키코드  (0) 2021.01.19