구조체 포인터변수 멤버 자세히 설명좀 해주세요..
자랑
2023.04.01
질문 제목 : 질문 내용 :
struct profile{
int age;
double height;
char *np; //이름을 연결한 포인터변수 멤버
};
int main(void)
{
struct profile s1;
......
s1.np=홍길동;
.......나이,키 저장하는 멤버는 그냥 변수멤버고
이름저장하는 멤버는왜포인터변수 멤버인가여
char np; 선언하고
s1. np는 왜 안되나여
킁.. 쪽팔리더라도 확실히 이해하고 싶습니다..
-
원술
하지만 char np;의 경우에는 주소를 저장할 수 있는 공간이 아닌 아스키 코드값을 문자형태로 저장하게 됩니다.
즉, a, b, c, d, ... 등 하나의 문자(아스키 코드) 저장이 가능하기 때문에 주소를 저장하지 못합니다. -
아메
문자열 같은경우에는 메모리에 주소를 할당 후 그주소에 \홍길동\을 저장합니다
그 후 홍길동의 시작주소를 변수에 대입하여 사용하기 때문입니다.
따라서 주소를 저장할 수 있는 포인터 변수가 선언되어있는겁니다.