는 선언은 언급 이 책과 내가 다르게 본 것들에 따르면, 구조체에 대한 포인터를 정의 할 때, 구조체의 이름, 즉 정의되는 타입을 언급 할 필요가있다. 예를 들어,타입 구조 정의의이 포인터는 무엇을 의미합니까 (C에서)? 때문에 다른 모든 예에서</p> <pre><code>struct{ int len; char *str; } *p; </code></pre> <p>나는 구조를 이해할 수 없었다가이 포인터 p를 가리키는과 같은 포인터 정의도 유효한 경우 다음과 같이 K & R 제 6 장에서
struct example{
int a;
...
}s1;
하고,
struct example *ptr = &s1;
때문에, PTR이 형 구조체의 예를 가리키는 그냥 구조체되지 않는다는 것을 언급한다.
또한, 특별한 관심이 있었다 :
이* P-> STR가 어떤 STR 포인트를 가져옵니다; * p-> str ++ 은 (* s ++처럼) 가리키는 부분에 액세스 한 후에 str을 증가시킵니다.
p가 처음부터 따라 올 수 없으므로, 따라서 증가분과 역 참조가 없습니다.
여기에 무슨 일이 일어나고 있습니까?
미리 감사드립니다.
P. 나는 여기에서 새롭기 때문에 질문 형식에 대한 피드백도 환영 할 것입니다.
첫 번째 예제에서 구조체는 * anonymous * 구조체이고'p'는 해당 익명 구조체에 대한 포인터입니다. –
익명 구조 란 무엇입니까? 그것은 일종의 구조입니까, 아니면 구조체 유형이 정의되지 않았 음을 말하는 것입니까? –
그것은 마치 표시된 것과 같은 이름이없는 구조입니다. 사용이 제한적이므로 자주 사용하지 않습니다. –