신고의 경우;여기에 한정자 정적이 적용된 이유를 모르겠습니까?
const int *p;
지정자 const
는 int
즉, p
가리키는 오브젝트에 적용된다.
성명 (년 6 월, 임베디드 시스템 프로그래밍)과 관련하여;
일부 선언 지정자는 선언자 -id의 형식에 기여하지 않습니다. 그들은 선언자 -id에 직접 적용되는 다른 의미 정보를 지정합니다. 예를 들어, 지역 :
static unsigned long int *x[N];
키워드
static
가unsigned long int
개체에 적용하지 않는x
점에서 포인터가된다. 오히려x
자체에 적용
---------------------------
/ \ /\
static unsigned long int * x [N];
이
x
은 정적 객체임을 선언 형 "부호 길이 INT 포인터의 N 소자 어레이."의
static
이 (가) x
에 적용되는 이유를 모르겠습니까?
''unsigned long int *'에'static'을 적용 할 수 있습니까?하지만'x'에는 적용 할 수 있습니까? 대답이 "no"이면 순서는 중요하지 않습니다. 왜냐하면'static'과'const'는 두 가지 다른 것들입니다. 'const'의 경우에는 다릅니다 :'const int * p'는'int * const p'와 같지 않습니다. –
무엇을 적용 할 것으로 예상됩니까? –
변수'x'는 배열 타입을가집니다 (이것은'unsigned long * [n]'부분입니다, 더 정확하게 그것은 unsigned long에 대한'n' 포인터의 배열입니다.)'static'은 타입과 아무런 관련이 없습니다 : it 다른 것들은'extern','auto','register'입니다.이 책이 불분명하다면 다른 책을 읽길 원할 수도 있습니다. http://stackoverflow.com/questions/562303/the-definitive-c-book-guide-and-list –