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
c언어 메모,정리 배열,포인터 -3일차 두번째 (0) | 2022.12.07 |
---|---|
c언어 메모, 정리 배열, 포인터-3일차 첫번째 (0) | 2022.12.07 |
2일차 c언어 typedef~ (0) | 2022.12.06 |
구초제 -c언어 2일차~ (0) | 2022.12.06 |
1.6일차 포인터어..억 C언어 (0) | 2022.12.05 |