07.포인터

J J·2021년 9월 15일
0

int i = 100 ;
int* pInt = &i;

//주소로 접근
(*pInt) =100;

//주소의단위
100;
//자료형 +* 변수명
//해당포인터에게 전달된 주소를 해석하는 단위

float f =3.f; 

int * pInt=(int*)&f;

i= *pInt;

float 형 부동소수점 3으로 표현한 비트를 int 포인터의 대입시키면 큰숫자가 나온다 .
그것은 float형 포인터인데 부동소수점을 포함한 비트가 1111.11120 요딴식으로 나오니 그걸 int 형으로 보겠다 . 111111120 의 의미이다.


02.포인터배열
32비트, 64비트 에 따라 포인터주소는 용량이 달라짐
32비트 4바이트 , 64비트 8바이트 .

pInt = int*변수 이기때문에 가르키는곳은 int로 해석한다 따라서 주소값을 1증가하는 의미는 다음 int 위치로 접근하기 위해서 sizeof(int) 단위로 증가하게 된다 .

포인터와 배열
배열의 특징
1.메모리가 연속적인 구조이다
2. 배열의 이름은 배열의 시작주소이다.
int iArr[10]={};

*(iArr +1)=10; //2번째칸에 10을 넣겠다 .

short sArr[10] ={1,2,3,4,5,6,7,8,9,10};

int* pI = (int*)sArr;
int iData = *((short*)(pI+2);
printf("1번문제 정답  %d ,iData);
답은 5 , 

char cArr[2] = {1,1};
short * pS=(short*)cArr;
iData =*pS;
printf ( " 2번문제 정답 %d , iData);

답 257

출처 -https://www.youtube.com/watch?v=dnU6Rqj8DFU&list=PL4SIC1d_ab-aOxWPucn31NHkQvNPHK1D1&index=28

0개의 댓글

관련 채용 정보