const로 함수 매개변수를 선언할 때 'const int'를 구별하는 것이 중요합니다. '와 'int const'입니다. 동일해 보일 수 있지만 수정자의 순서에 따라 선언의 해석이 변경됩니다.
'const int'는 상수(수정할 수 없음)이고 int 유형인 변수를 선언합니다. 여기서 강조점은 변수에 const 한정자가 적용된다는 점입니다.
'int const'는 반면에 int 유형이면서 상수인 변수입니다. 이 경우 const 한정자는 변수가 아닌 type을 수정합니다.
그럼 이 두 함수는 동일한가요?
<code class="c">int testfunc1 (const int a) { return a; } int testfunc2 (int const a) { return a; }</code>
예, 동일합니다. 선언을 거꾸로 읽으면 더 명확해집니다.
'const int'의 경우:
'int const'의 경우:
두 경우 모두 "a"는 정수이자 상수입니다.
그러나 역방향 읽기 트릭은 복잡한 선언에서 매우 유용합니다.
<code class="c">// "s" is a pointer to a char that is constant const char *s; // "t" is a constant pointer to a char char *const t = &c; // The char in "s" is constant, so you can't modify it *s = 'A'; // Can't do // The pointer in "s" is not constant, so you can modify it s++; // Can do // The char in "t" is not constant, so you can modify it *t = 'A'; // Can do // The pointer in "t" is constant, so you can't modify it t++; // Can't do</code>
C에서 const 데이터 멤버는 클래스 선언이나 생성자에서 초기화될 수 있다는 점을 기억하세요. 반면 C에서는 const 데이터 멤버가 기호 상수로 간주되고 선언에서 초기화되어야 하므로 #define과 매우 유사합니다.
위 내용은 C와 C의 \'const int\' 대 \'int const\': 정말 동일합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!