본문 바로가기
카테고리 없음

문자형,문자열,포인터 관계

by ByteBridge 2013. 2. 20.
반응형

문자형 변수의 포인터는?

char ch='a';
char* pch = &ch;

문자열은 문자들을 모아놓은것이다.
문자열은 문자와는 다르므로 문자형변수에 대입할수없다.
Ex: char str = "winter";컴파일시 에러가 남


--> 문자형배열
문자형 1차원배열은 char 형으로 정의함,정의 방법은 int 형을 정의할때와 동일하며 int 형이 char 형으로만 바뀐다.

char str[5]={'k','o','r','e','a'};


문자형 배열은 문자열을 다루기위해 사용된다.
배열크기의 생량하면 컴파일러에 의해 자동으로 초기화값으로 크기가 정해진다.

--> 문자열과 포인터
문자열은 문자들의 집합이며 끝이  널문자로 종결되는것이다.
문자형 배열의 포인터를 사용하여 문자열을 좀더쉽게 조작할수있다.
문자열: 문자형 배열상수,그값을 변경할수없음

문자열은 문자들로 구성되어있는 문자형 배열상수이며,프로그램이 실행되면 문자열은 그 값을 변경할수없는 상수영역에 저장된다.
따라서 문자열을 참조할수는 있지만 그값을 변경할수는 없다.
문자형 배열 srt 이 선언되어있을때 문자형 포인터는 다음과 같이 사용할수잇다.
char str[10]="book";//"book" 은 문자형 배열상수
char* pstr = str; //char* pstr=&str[0];와 동일
cout<<*pstr<<endl; //str[0] 의 문자 b가 출력된다.

문자열은 상수영역에 저장되고 사용되기때문에 다음과 같이 문자열을 수정하면 에러가발생함
char*pstr = "book";
pstr[0] = 'B'; 

반응형