강좌 & 팁
글 수 2,412
2011.10.17 00:31:24 (*.172.215.154)
40386
2.7
문자열
-->문자배열(문자 하나를
저장)
-->문자열 : 문자열 에서는 항상 맨 마지막이
NULL(0)=>\0 로 끝이난다.
위그림에서 cText[9]=0; 의 효과와 같다. -마지막 주소여기는[9]에 0을 넣어줘야 문자열이다.
char cText1='A' 는 캐릭터형으로(1바이트) 'A'에 해당하는 아스키 코드가
저장된다.
cText1='A' 의=(대입연산자)의 왼쪽은 메모리 이다. 예를 들어 'A'의 위치가 1000번지의 주소값을 가진다 라고 하면
1000번지에 'A' -아스키코드 67이 저장된다는 말이다.
심볼 테이블(Symbol
table)
Type(형) | Name(이름) | Address(주소) |
char | cText1 | 1000 |
char | cText2 | 999 |
char[] - []는 배열 | cText | 989 |
989번지 [0] - char cText[10];//배열이며 제일빠른 수가 심볼테이블에서 주소로 온다 |
990 [1] |
991 [2] |
992 [3] |
993 [4] |
994 [5] |
995 [6] |
996 [7] |
997 [8] |
998 [9] [0]-[9]까지로 색인(index)라고 한다. |
999 |
1000번지 |
char cText[10]; 은 캐릭터형으로 [숫자] 만큼 만들 라는 말이며 []가 있는 것을
배열(Array)어레이 라고 한다. 998-989번지라고 하면 표시는 제일 처음의 989번지를
적는다.
cText[0]='A' 는 cText의 [0]번째 자리인 989번지에 A를 아스키 코드 로 저장 하라는
말이며 989번지에 아스키코드 65가 저장된다.
int A[10]; 인트가 4바이트 이므로 총 40 바이트가 된다.
short A[3]; 쇼트가 2바이트 이므로 총 6바이트가
된다.
문자배열 : 1바이트
cText[0]=65; == cText[0]='A'
cText='A'; 에러 가 난다. 바르게 고치면 cText[0]='A' 로
해야한다.
A | B | C | D | E | F | G | H | Z | Y |
0(NULL) |
위그림에서 cText[9]=0; 의 효과와 같다. -마지막 주소여기는[9]에 0을 넣어줘야 문자열이다.
printf("happy");
안보이지만 happy\0 로 되어있다.
printf와 scanf
printf("%d\n,cText1);
는 ,뒤의 cText1을 앞의 %d에 넣는다는 것이고
scanf("%s",&W);
는 %s 스트링을 받아서 뒤의 W로 넣어준다는 것이다.(메모리로)
scanf("%s",&W); 의 &는 앤퍼샌트 라고 하며 주소연산자로
쓴다.