반응형
C 및 C++ 포인터 표기에서 별을 넣을 위치
중복 가능:
C/C++에서 포인터 변수를 선언하는 올바른 방법
한동안 다음이 짜증이 났었는데, 제 포인터 표기법에 별을 어디에 넣어야 할까요?
int *var; // 1
그리고.
int* var; // 2
분명히 같은 일을 하고, 두 표기법 모두 정확하지만, 제가 보는 대부분의 문헌과 코드는 첫 번째 표기법을 사용합니다.
타입과 변수 토큰을 혼용하는 것보다 타입과 변수명을 공백으로 구분하여 2번째 표기법을 사용하는 것이 '올바른' 것이 아닐까요?
아니요. 절대로.<g>
그러나 다음을 고려합니다.
int* var1, var2;
여기, 그 위치는*
오해의 소지가 있습니다. 왜냐하면 그것은 적용되지 않기 때문입니다.var2
, 어느것이int
아닌int*
.
리눅스 커널 코딩 스타일 규칙은 다음과 같습니다.
int *ptr1 , *ptr2;
그래서 관례대로 채택해야 한다고 생각합니다.
포인터 데이터 또는 포인터 유형을 반환하는 함수를 선언할 때 선호되는 용도는
*
는 데이터 이름 또는 함수 이름에 인접하고 형식 이름에는 인접하지 않습니다.예:
char *linux_banner;
unsigned long long memparse(char *ptr, char **retptr);
char *match_strdup(substring_t *s);
저는 이 표기의 이유 중 일부는 변수의 용법과 선언이 비슷해 보이기 때문이라고 생각합니다.
int *var;
int x;
x = *var;
당신은 그것이 탈참조라는 것을 말하는 것이라고 생각할 수도 있습니다.var
당신에게 int를 줄 것입니다.
언급URL : https://stackoverflow.com/questions/13894228/where-to-put-the-star-in-c-and-c-pointer-notation
반응형
'programing' 카테고리의 다른 글
네임스페이스가 있는 XML 구문 분석에 jQuery를 사용하는 방법 (0) | 2023.09.24 |
---|---|
MYSQL LIMIT 키워드에 대한 ANSI SQL 대안이 있습니까? (0) | 2023.09.24 |
중앙의 이미지 정렬을 위한 CSS (0) | 2023.09.19 |
sequelize에서 mysql 연결 확인 (0) | 2023.09.19 |
MySQL 버전 대 배포 번호 (0) | 2023.09.19 |