본문 바로가기

int형2

[C언어] 포인터 변수에 있어 자료형의 의미 2 1 2 3 4 5 6 7 8 9 10 11 12 #include int main() { double num2 = 3.14; int * ptr2 = &num2; *ptr2 = 10; } cs 여기에서 변수 num2가 더블형인데, num2를 가리키는 포인터 변수 자료형을 int라고 설정해놓으면, 포인터는 자기가 가리키는 변수가 원래 더블형이라 8바이트 임에도, 정수형으로 인식하여 4바이트로 num2 변수에 데이터 값 10을 메모리에 다시 저장하게 된다. 그러면 8바이트 짜리로 메모리에 저장되어 있던 값에 정수형 4바이트 짜리로 저장하게 되니(4바이트 짜리로 알고 메모리에 접근하게 되니) 앞의 4바이트는 10이라는 정수값이 채워지고, 기존의 8바이트 짜리 메모리의 뒤 4바이트는 3.14의 흔적이 남아있게 된다.. 2020. 8. 9.
[C언어] 포인터 변수에 있어 자료형의 의미 1 포인터 변수를 선언할 때 사용되는 * 연산자 그와 더불어 그 앞에 일반 변수와 같이 자료형을 표현하는데, 이 자료형은 포인터 변수에 관한 내용이 아니라, 포인터가 가리키는 변수의 값의 자료형에 관한 것이다. int * ptr 이라고 할 때, 포인터 변수 ptr 앞에 붙는 자료형 int는 ptr이 가리키는 변수(엄밀히 말하면, 그 변수의 메모리에 저장된 값)의 자료형을 나타낸다. int ptr = &num에서 처럼, 그냥 일반 변수 ptr에 변수 num의 주소값을 저장할 수는 있지만, 이럴 경우, 일반 변수 ptr은 변수 num의 주소값 외에는 num이라는 변수(메모리)에 저장된 값에 대한 정보는 알 수가 없다. 여기서 자료형 int는 오롯이 ptr이라는 변수가 정수형이라는 정보일 뿐이다. 그래서, 1 2.. 2020. 8. 9.