c에서 배열을 정의하는 올바른 방법은 무엇입니까?c - 배열을 정의하는 올바른 방법은 무엇입니까?
#include <iostream>
#include <unistd.h>
#define Lookup[9][] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"}
c에서 배열을 정의하는 올바른 방법은 무엇입니까?c - 배열을 정의하는 올바른 방법은 무엇입니까?
#include <iostream>
#include <unistd.h>
#define Lookup[9][] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"}
정의하고 배열을 초기화하는 올바른 방법은
char Lookup[][3] = {"00", "01", "02", "03", "04", "05", "06", "07", "08"};
Lookup
자체입니다 배열의 각 요소 : 다음 건설 컴파일러는 "예상 표현"오류를 제공 작동하지 않습니다 다른 3 바이트 배열. 제로 터미네이터 (zero terminator)로 계산하면 2 자 길이의 문자열에 충분한 공간입니다.
배열의 요소의 수는, 예를 들면 int
의 배열을 정의하기
int k;
for (k = 0; k < sizeof Lookup/sizeof *Lookup; k++) {
printf("element at index %d: %s\n", k, Lookup[k]);
}
0 종결자를 없애는 방법이 있습니까? –
(정말 빠른 알고리즘을 찾기 위해 조회 테이블을 만들 필요가 있습니다. 0 터미네이터를 사용하면 더 복잡하고 느려질 것입니다) –
가장 안쪽의 배열을 2 바이트로 정의하면 결과 요소는 더 이상 문자열이 아니지만 가능합니다 . 문자열이 아니기 때문에 나는 보통'char'보다는'unsigned char' (또는'signed char')를 사용하여 다소 더 명확하게하고 싶습니다 :'unsigned char Lookup [] [2] = { "00", "01", "02", "03", "04", "05", "06", "07", "08"}; ** 요소는 더 이상 문자열이 아닙니다 **. 'printf'에서''% s "'를 사용하는 것은 에러입니다 ('
같이 표현 sizeof Lookup/sizeof *Lookup
사용할이다
int int_array[10];
정의하고 어레이를 초기화 int
:
int int_array[] = { 1, 2, 3, 4, 5 };
배열을 초기화 할 경우 요소 수를 지정하는 것은 선택 사항입니다.
C++에서의 예, 보통 C 언어가 아닌 ... – gavenkoa
예! 데이터를 정의하지 마라. – pmg