|
설명을 다시 드릴께요.
c에서 문자열을 저장하는 null-terminated 방식으로 말씀드릴께요.
문자열은 char형 타입의 연속된 배열에 저장된다는거 아시죠?
예를 들어 char szName[10] = { 'M', 'i', 'k', 'e', '\0', };
이렇게 해주면 szName[10]이란 배열 변수에는 "Mike\0"이라는 값이 저장됩니다.
char s[10][3] 이렇게 잡으시면
예를 들어..만약 이름 3명의 값을 저장할 수 있는 정적배열을 선언하려면
char sz3Names[3][10]; 이렇게 선언해주시면 됩니다.
각 사람은 10개의 저장공간을 가지므로 0~9까지 10개의 문자를 저장가능하지만 '\0'(문자열의 끝)을 하나 더 집어넣어야 하니까
실제적으로는 9자리의 문자만 저장 가능하겠네요.
이해가 되셨나요? 주소지정은 위와 같습니다.
[0][0], [0][1], [0][2], ... [0][9],
[1][0], [1][1], ...
-locke
한수동 님이 쓰신 글 :
: 2차원 배열을 쓰면...
: 주소 잡는게 어떤 식으로 잡히는 거죠?
: 만약 char s[10][3]; 이라고 하면
:
: 주소를
: 3개씩 10개가 순서대로 잡히나요 아니면
: 1개씩 10개 잡고 또한번 1개씩 10개 잡고 또한번 1개씩 10개 잡는
: 이런식인가요?
|