본문으로 바로가기

C언어 11일차

category 스마트팩토리/C언어 2020. 10. 20. 14:02

L value = R value 

wirte       Read

L value는 쓰는거고 R value을 읽어 올수 있다.

R value를 읽어와서 L value에 쓴다로 해석할수 있다.

 

 

밑에 코드에서 P1은 4바이트를 가진다. P2도 4바이트를 가진다. WHY? 둘다 포인터 변수이기 때문이다.

포인터 변수는 4바이트를 가지기에~

그러나 가져올때 int* p1 = &iNum;에서 int로 가져오기에 12345678이 출력되고 char* p2 = &iNum;에서는 char로 가져오기에 78이 출력되고 나머지는 0으로 채워진다.

*p2 = 0xAB;을 입력하게 되면 78자리에 AB가 들어가게 된다.

그리고 출력하면 123456AB가 되는것을 볼수 있다.

#include<stdio.h>

int main()
{

	int  iNum = 0x12345678;
	int* p1 = &iNum;
	char* p2 = &iNum;

	printf("%08x\n", *p1);
	printf("%08x\n", *p2);

	*p2 = 0xAB;
	printf("%08X\n", iNum);

}

 

'스마트팩토리 > C언어' 카테고리의 다른 글

C언어 13일차(배열)  (0) 2020.10.22
C언 12일차 (포인터)  (0) 2020.10.21
C언어 10일차(포인터)  (0) 2020.10.15
C언어 9일차(포인터)  (0) 2020.10.14
C언어 8일차(반복문)  (0) 2020.10.13