포인터변수에 문자열 입출력시 * 연산자 유무를 잘 모르겠습니다.
심플이
2023.04.01
질문 제목 : * 유무질문 내용 :
int형 포인터변수에 number주소값을 넣는는다
int number=10;
int * num = &number;
//출력부분
printf(%d,*num );// 10출력
*num=20; //num이 가리키는 주소값에 있는 값을 20으로 바꾼다
printf(%d, *num);//20출력
그런데 char형 포인터변수에 문자열입력과 출력시
char * ch=hello;
printf(%s,ch); ----여기서 왜 *ch 로 출력을 하지 않는건가요??
값변경시에도
*ch= hi; 이게아니라
ch =hi;로 값을 변경하던데 왜 이런건가요??
그리고 책을보면 문자열저장시
첫글자 주소값을 저장해서 hi 를출력을 한다고하는데
컴퓨터가 문자열끝을 어떻게 알고 hi까지 출력하는건가요?
배열 문자열 처럼 null을 만날때까지 출력을 하는건가요?이해가 갈듯하면서 안가니..너무 궁금해서 질문드립니다