(샵인클루드나 ; 같은건 생략해서 말하겠음)
void F(char * str2)
{
print("%s ", str2) <- 이거 왜 *str2가 아님?
}
int main()
{
char * str="Hi"
F(str)
}
에서 출력결과가 Hi 인데, 저거 왜 그냥 str2임??
main함수의 str에 "Hi"의 주소값이 들어가고, F함수의 str2에 str의 주소값이 들어가면, str2는 주소값이고 *str2가 "Hi"아닌감?
void F(char * str2)
{
print("%s ", str2) <- 이거 왜 *str2가 아님?
}
int main()
{
char * str="Hi"
F(str)
}
에서 출력결과가 Hi 인데, 저거 왜 그냥 str2임??
main함수의 str에 "Hi"의 주소값이 들어가고, F함수의 str2에 str의 주소값이 들어가면, str2는 주소값이고 *str2가 "Hi"아닌감?
char * str="Hi" char * str2 =str; print("%s ", str2); 이거 돌리면 뭐 나올거 같냐?
ㄴ
char*를 하나의 타입으로 보셈
문자열이라는게 char의 배열인데 니가 그 str 크기만큼 메모리 할당을 안해줘서 그럼
char *str;
str = new char+;
str = (char*) malloc (sizeof(char) * 10);
메모리 할당 하고 무관한듯. 메모리 할당 해줘도 마찬가지일들
아 ㅋㅋ 질문 잘못봤네 Hi 나오는게 맞지 %s가 char*임
printf("%s", str); == printf("%c%c", str[0], str[1]); == printf("%c%c", *str, *(str+1));
포인터가 사실 어려울게 아닌데 은근히 이런 입출력 함수들하고 얽혀서 어려워 보이는듯. *str2 는 'H' 이지
아 이해됐따