다시 정확하게구조체포인터에대해 이해안되는 부분을 질문합니다
큰깃
질문 제목 : 구조체와 포인터구조체 포인터의 접근질문 내용 : 구조체에서
typedef struct person
{
char name[15];
char id[20];
unsigned int age;
}person;
void showpersondata(person *ptr)
{
printf(이름 : %s \n,(*ptr).name);
printf(민번호:%s\n,(*ptr).id);
printf(나이 : %u\n.(*ptr).age); }
1.질문은 여기서 빨간색으로 되어있는부분에서 있습니다. 먼저 이름을 추출할때 %s는 저장된 문자열의 주소값을 전달 받아 처리한다고 알고있습니다. 그리고 %u는 주소값이 아닌 값을 전달 받는 것으로 알고있구요..(저는 서식문자와 기본적인 구조체,포인터,배열 문법은 알고있습니다, 질문은 서식문자에대해 묻는것이아닙니다ㅜ)
그런데 (*ptr).xxx 형태는 주소값을 참조하여 저장된 값에 바로 접근하는것인가요? (강의하는 윤성우 저자는 이것은 *ptr처럼 값에 바로 접근하기 위한거라고 설명하더라구요... )
그렇다면 이름을 추출할때 %s는 주소값을 받아야 할텐데... (주소값이아니라 어떤 특정값자체를 주면 에러가 날듯합니다 그리고 ps 로제가 밑에 소스를 올렸습니다 실제 에러가 나는것)그리고 나이 추출에는 값을 받아야하고.. 그런데 형태는 같고.. 헷갈립니다.ㅜㅜ
2.그리고 구조체 가있을때 예를 들어 person m; 을 만들고 m.name, m.id, m.age 가 의미하는 것은 단순히 구조체안에 변수 이름이지요?ps
int main(void){
char* ptr1;
char num[]=hi, nice to meet you\n\n;ptr1=num;
printf(%s,*ptr1);
return 0;
}
이렇게 해보니 에러가 뜨네요 역시..