void inc(char * t)
{
t++;
}
라는 함수가 있음.
그리고
main()
{
char * a = "sadfasdf";
inc(a);
}
라고 만들면 inc가 char 포인터를 받으니까
최종적으로
main()
{
char * a = "sadfasdf";
a++;
}
랑 같아야 된다고 생각하는데, 왜 그렇지가 않을까?
진짜 별짓거리를 다해도 안되네.
**, &, *** 이딴거 써도 안됨.
char *& t는 C++문법이라 쓰면 안되고...
int(a)? ㅋㅋ 어그로인가
ㄴ 오타 잖어
안되는게 어덯게 안되는데
저거 2중 포인터 써서 넘겨야 해
밖이라서 해볼순없지만 sadfasdf -> adfasdf 가 될것같은데
a가 담고있는 주소가 첫번째 문자 주소니깐 ++하면 다음문자가 첫문자가 될것같은데 내생각은
저게 문자열에 대해서는 주소값 참조인데 그 주소값에 대해서는 값 참조야.. 그래서 주소값의 변경은 함수 밖에 반영되지 않아
함수 내에서 변경한 함수 내의 포인터 변수의 값이 함수 밖에서도 적용될거라고 생각하는 저의는?
아... 잠깐 기달려봐 -_-;; 코드 짜서 올릴게
a++이나 t++은 포인터가 가르키는값을 변경하는게아니라 포인터의 참조위치를 변경하는겁니다 3D프로그래머님
그리고 매개변수 *형으로 썻기때문에 main과는 아무런관련이없지요 니미럴프로그래머님 더블포인터로 받아서 (*t)++를하세요