C : 'int* a' == 'int *a'

m_ngyeong·2024년 10월 15일
0

C

목록 보기
10/16
post-thumbnail

Is there a difference between int* a and int *a?

int* aint *a문법적으로 동일하며, 차이가 없다. 두 표현 보두 aint형 데이터를 가리키는 포인터임을 의미한다.

왜 이런 차이가 생기는가?

C/C++에서 포인터 선언 시, *는 포인터임을 나타내는 기호이다. 하지만 *와 변수명 사이에 공백을 두는 것은 프로그래머의 코딩 스타일 차이일 뿐, 컴파일러가 이해하는 의미는 동일하다.

int* a;  // a는 int형 데이터를 가리키는 포인터
int *a;  // a는 int형 데이터를 가리키는 포인터
  • 이 두 표현은 정확히 동일하게 처리됨.
    a는 모두 int형 변수를 가리킬 수 있는 포인터 변수로 선언된 것.

주의할 점

이러한 스타일 차이로 인해 포인터를 여러 개 선언할 때는 주의가 필요하다.

int* a, b;
  • 위의 코드는 두 개의 포인터가 선언된 것이 아니라, aint형 포인터이고, b는 일반 int형 변수임.

다음과 같이 선언하는 것이 좋다

int *a, *b;  // a와 b 모두 int형 포인터로 선언됨.


profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글