상세 컨텐츠

본문 제목

2일차 포인터 변수~c언어

코딩

by Davinc2 2022. 12. 6. 18:50

본문

c의변수임-다른 객체를 참조하기 위해서 사용한다.

 

구체적으로 컴퓨터 메모리에 있는 자료값이나 변수 혹은 함수의 주소를 가지는 변수

 

변수의 크기에 따라서 차지하는 메모리 공간이 달라짐.

 

예를 들어 

도서관에 수십만권의 책이 있고 여러분이 이 중에서 내가 원하는 책을 찾고자 한다.

 

여러분이 찾고자 하는 책의 위치를 저장하고 있는 인덱스를 먼저 접근해서 찾은 다음

실제 책이 있는 곳에가서 책을 찾으면 효율적이다

책이 있는 곳을 참조하는 것

 

변수의 크기에 따라서 메모리 공간이 달라짐.

sizeof 연산자로 컴파일러가 컴파일할 떄의 변수형 크기를 알 수 있다.

 

 

#include <stdio.h>
int main(void) {
int i;
char ch;
short shrt;
float flt;
double dbl;

printf("int형의 크기 = %lu \n",sizeof(int));
printf("변수 i의 크기 = %lu \n", sizeof(i));

printf("변수 ch의 크기 = %lu \n", sizeof(ch));
printf("변수 shrt의 크기 = %lu \n", sizeof(shrt));
printf("변수 flt의 크기 = %lu \n", sizeof(flt));
printf("변수 dbl의 크기 = %lu \n", sizeof(dbl));  
//lu는 롱 언사인드 인트형식
}

출력값

int형의 크기 = 4
변수 i의 크기 = 4
변수 ch의 크기 = 1
변수 shrt의 크기 = 2
변수 flt의 크기 = 4
변수 dbl의 크기 = 8

 

각 변수 크기 출력한 것 byte단위

 

 

 

포인터 변수:컴퓨터 메모리상의 주소를 저장하는 자료형

 

int mylnt;      //정수형 자료값을 저장하는 메모리 공간의 이름

 

int *myPointer;   //정수형 자료값을 가지는 변수의 주소를 가지는 변수

                             여기서 *는 변수 이름의 일부가 아니고 포인터 변수라는 것을 선언

 

#include <stdio.h>
int main(void) {
int *mypointer;
int myvar = 10;

mypointer = &myvar;
printf("*mypointer = %d\n", *mypointer);
printf("*mypointer = %d\n", mypointer);

return 0;
}

출력 

*mypointer = 10
mypointer = 15727740

 

NULL값

포인터 변수를 초기화할떄 주로 사용하며 포인터 변수가 아무것도 

가리키지 않는다는 것을 나타낸다.

int main(voide){

         

         pinrtf("NULL value = %p\n",NULL);

         return 0;

결과 NULL value = 0x0

 

관련글 더보기