안녕하세요...
이글을 읽고 답변을 할려고 지금까지 생각을 해보았답니다....
이윽고 이런게 아닐까 하고 조심스레 글을 올립니다. ㅡ.ㅡ;
bcc5.5에서 테스트 했답니다.
&a 가 잘못됬다
우선 &의 사용법을 보죠. 첫번째로는 주소를... 두번째는 참조 할때 사용하겠죠..
첫째로... 주소를 나타낸다면 에러가 아닙니다.
가령
a[2];
cout << &a << endl;
cout << a << endl;
두개다 같은 값을 표시하며 에러를 발생시키지 않습니다.
둘째로.. 참조라면 분명 에러가 발생합니다. 배열에 대한 참조는 인정되지 않습니다.
void test(int &b[]);
void main()
{
int a[2] = { 1,2 };
test(a);
}
컴파일러는 에러를 발생시킵니다.
이상 ... 나의 생각입니다.
ㅎㅎ 좋은 하루 되세요
권왕 님이 쓰신 글 :
: 예를들어,
:
:
:
: a[i]라고 하는 배열이 선언되어 있다고 할 때,
:
:
:
: a는 상수 포인터(constant pointer)가 된다고 하잖아요.
:
:
:
: 그렇기 때문에
:
:
:
: 다음과 같은 식이 잘못되었다는 것은 이해가 갑니다.
:
:
:
: a = p ++a a += 2
:
:
:
: 그런데 어떤 책을 보니까,
:
:
:
: &a 도 잘못된 식이라고 하는데,
:
:
:
: 왜 이게 잘못된 식인지 모르겠습니다.
:
:
:
: 이것은 a값 자체를 변경하는 것도 아닌데 말입니다.
|