나는 비교적 C에 익숙하고 이해하려고 노력 structs
하고 pointers
있습니다. 뭐라고합니까 *Building
이 구조체 선언의 끝은 무엇입니까?
typedef struct building {
char *floor;
struct building *nextBuilding;
} *Building;
지금부터 내가 할 때
Building someBuilding = malloc(sizeof(struct building));
somebuilding은 building
?에 대한 포인터입니다 .
예, 다음과 같이 작성할 때 :
typedef struct building { … } *Building;
Building bp;
다음 bp
에 대한 포인터입니다 struct building
. 그러나 포인터를 포함하는 것은 종종 나쁜 스타일로 간주됩니다 typedef
. 다음을 사용하면 코드를 더 쉽게 이해할 수 있습니다.
typedef struct building { … } Building;
Building *bp;
이제 bp
유형이 포인터 라는 정의를 보면 분명 합니다. 당신이 결코 구조의 내부에 액세스하려고하지 않으면, 그것은 너무 많이 중요하지 않습니다 (그러나 모양에서 FILE *
에서 <stdio.h>
, 당신은 항상 쓰기 FILE *fp
, 등). 내부에 액세스하려는 경우 :
printf("Floor: %s\n", bp->floor);
그런 다음 포인터를 표시하는 것이 좋습니다. 사람들은 온화하게보고 놀라게 될 것입니다 Building bp;
나중에 다음과 bp->floor
대신 bp.floor
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다