char *a="1234";
char *b="abcd";
a = b + 1; <------- 이건됨 처리가됨
a[0] = b[0]; <--------이건 오류먹음
왜 a[0]=b[0] 같은거는 처리가 안되는거야? 배열처럼 무조건 주소가 연속되어야 되는건가 ㅇㅅㅇ?
만약에 a="1234"
인데 c(b[2])를 3(a[2])이랑 바꿔서 a가 "12c4" 가 되게 하려면 어떻게해야해?
char *a="1234";
char *b="abcd";
a = b + 1; <------- 이건됨 처리가됨
a[0] = b[0]; <--------이건 오류먹음
왜 a[0]=b[0] 같은거는 처리가 안되는거야? 배열처럼 무조건 주소가 연속되어야 되는건가 ㅇㅅㅇ?
만약에 a="1234"
인데 c(b[2])를 3(a[2])이랑 바꿔서 a가 "12c4" 가 되게 하려면 어떻게해야해?
포인터 변수에 문자열을 직접 집어넣게 되면 그 문자열은 어느 변수에 저장되어있는 것이 아니라 특수한 메모리에 그 문자열이 저장됩니다.
따라서 문자 배열처럼 각 원소에 하나씩 접근할 수 없으며, 포인터 변수가 가리키는 값의 일부를 바꾸고자 한다면 아예 통째로 바꾸셔야 합니다.
ㄴ 아하 감사합니당@!