char *str = "hello";
라고 포인터함수 초기화로 선언하면요
저 포인터함수에 문자열 첫번째 h의 주소값이 오는거 아니에요?
그래서 str+1하면 e의 주소가 되는거 아님?
이게 문자배열로하면 되는데, 왜 포인터로 하면 안되는거죠?
char *str = "hello";
라고 포인터함수 초기화로 선언하면요
저 포인터함수에 문자열 첫번째 h의 주소값이 오는거 아니에요?
그래서 str+1하면 e의 주소가 되는거 아님?
이게 문자배열로하면 되는데, 왜 포인터로 하면 안되는거죠?
포인터는 주소집어넣을때 쓰는거 아닌가 저렇게 문자열 집어넣는 용도가 아니라;
그래서 라이브러리 함수들도 일단 문자열을 배열로 잡아주고 라이브러리 함수로 얻은 주소값을 포인터에 대입하는 방식이잖아.
ㄴ 문자열을 집어넣은 게 아니라 문자열의 주소를 집어넣은 거 같은데요..
똑같이 잘되는거 같은데 어떻게 쓰면 어떻게 나온다는 것인지..
아;; 예를들어서요. 문자배열로 선언했으면 str[3]='k'이런식으로 접근할수있잖아요, 그것처럼 포인터 주소를 1바이트 단위로 증가시켜서 문자열 내의 문자 1개씩 못고치는가 해서요. 제가 해보니까 안되는거같던데 ..
ㅋㅋ/ 저래도 댑니다
될꺼같긴 한데 한번 해봐야지
네, 맞습니다. 큰 따옴표로 치면 문자열 상수라고 해서 변경 불가능입니다.
배열로 만드는거하고 따옴표에 포인터로 만드는 건 다릅니당 ㅋ_ㅋ
아 상수로 되는구나;;; 답변 감사합니다.
http://mintnlatte.tistory.com/223
<< 제가 잘못 알고 있었네요
솔직히 이런거 안외워도 됩니더....
다 경고랑 오류메세지 띄워 주기때문에 의식하면서 외우지 않아도 다 자연스럽게 합니더....
아 돼네
함수 내에 문자열주소 리턴해서 써도 됩니더.... 프로그램 시작해서 끝날때 까지 한 주소에 그대로 들어 있으니...
자위기구 어떤 븅신이 봇만들어서 장난질?
올바른 자료형은 const char *