NULL
문자열배열과 NULL문자 본문
문자열 배열은
문자열 배열의 선언은 보기와 같다.
char str[14]="Good morning";
이렇게 선언하고 인덱스부분은
굳이 쓸필요 없다는 점을 기억하시구요.
문자열은 제일 뒤에
널이라는 문자가 들어갑니다.
이것은 단순히 문자열 배열에서만
해당하는것이 아니라
모든 큰따옴표를 가진 문자열들은
모두 맨뒤에 \0이라는 문자를
가지고 있습니다.
\0이라는게 어떤 역할을 하냐면
문자열의 끝을 의미합니다.
컴퓨터는 0과 1만 있는데
문자열을 \0로 구분합니다.
만약 \0이 없다면
\0을 만날때까지 문자열을 넘어
이상한 값까지 출력이 됩니다.
반드시 써줘야 되는 부분이구요
\0, NULL, 0
3개는 모두 널에 해당합니다.
널 문자는 아스키코드로 0을 나타냅니다.
scanf로 문자열을 입력할때
&연산자를 붙이지 않아도 되는 이유는
scanf("%s", str); 이런식으로
배열의 이름은 첫번째 배열의
주소값을 가리킵니다.
첫번째 배열부터 실행해서
\0을 만날때까지 문자를 출력합니다.
또한 scanf로 공백을 포함한 문자열은
입출력할수없습니다.
scanf는 공백단위로
문자열을 구분하기 때문이죠.
문자배열과 문자열배열은 수정이 가능합니다.
[ ]인덱스는 문자하나하나를 가르키기때문이죠.
'C' 카테고리의 다른 글
포인터와 배열관계 (0) | 2016.12.18 |
---|---|
포인터에 대한 이해 (0) | 2016.12.18 |
1차원 배열 개념정리 (0) | 2016.12.14 |
재귀함수에 대한 이해 (0) | 2016.12.14 |
전역변수와 static변수 (0) | 2016.12.14 |
Comments