1. cpu[3]이 선언된다면 cpu[0] cpu[1] cpu[2]가 만들어지는대 cpu[3]의 주소값도 존재하나요? 2. &cpu[2] - &cpu[1] 의 값은 1인가요? 3. &cpu[2].b - &cpu[1].a 의 값은 cpu 1개의 크기가 4이기 때문에 4인가요? 4. &cpu[2].b - &cpu[1]의 값은 구할 수 있나요? 5. union대신 struct라면 &cpu[2] - &cpu[1] 의 값도 1인가요? 6. union대신 struct라면 &cpu[2].b - &cpu[1].a 의 값은 8인가요?
첫댓글
먼저, 질문한 내용은 직접 실습해 보면 알 수 있습니다.
하지만 간단하게 답변은 합니다.
1. cpu[3]이 선언된다면 cpu[0] cpu[1] cpu[2]가 만들어지는대 cpu[3]의 주소값도 존재하나요?
cpu[3]의 주소값이 존재는 하지만 아무런 의미가 없는 쓰레기 입니다.
2. &cpu[2] - &cpu[1] 의 값은 1인가요?
그렇습니다.
3. &cpu[2].b - &cpu[1].a 의 값은 cpu 1개의 크기가 4이기 때문에 4인가요?
의미가 없습니다.
실습해보면 오류 발생
4. &cpu[2].b - &cpu[1]의 값은 구할 수 있나요?
위의 3번과 같은 개념의 질문입니다.
실습해보면 오류 발생
//포인터 뺄샘에 대해서 적어보면
* 포인터끼리 연산은 극히 제한적 뺄샘을 제공
* 포인터 뺄샘은 변수(배열 등)가 메모리 할당되었을때 상대적인 위치를 정수형으로 제공하기 위한 것입니다.
위에 본인이 궁금해 질문한 이런 것을 제공하기 위한 것이 아니므로 오류가 발생합니다.
5. union대신 struct라면 &cpu[2] - &cpu[1] 의 값도 1인가요?
그렇습니다.
6. union대신 struct라면 &cpu[2].b - &cpu[1].a 의 값은 8인가요?
의미가 없습니다.
실습해보면 오류 발생