티스토리 뷰
포인터 기초
#포인터 이해
1. 포인터 개념
포인터 : 특정 위치를 가리키는 주소 정보
포인터 변수 : 포인터(주소)를 저장하는 변수, 다른변수를 가리키는 변수
2. 포인터 변수포인터 변수 : 포인터(주소)를 저장하는 변수, 다른변수를 가리키는 변수
포인터 변수의 데이터 타입은 포인팅하는 변수의 데이터 타입과 동일한 타입으로 선언
char* a;
int* b;
sizeof() 연산자
int sizeof(int) : 매개변수에 기술한 공간의 크기를 정수값으로 반환함
3. 포인터 초기화char* a;
int* b;
sizeof() 연산자
int sizeof(int) : 매개변수에 기술한 공간의 크기를 정수값으로 반환함
& : 주소 구하기 연선자
& 데이터 변수 : 변수의 주소를 의미
* 포인터 변수 : 포인터 변수가 가리키는 주소의값
ex)
int a =5;
int *pa = &a;
결과값 -> a변수의 주소
& 데이터 변수 : 변수의 주소를 의미
* 포인터 변수 : 포인터 변수가 가리키는 주소의값
ex)
int a =5;
int *pa = &a;
결과값 -> a변수의 주소
#포인터 이용
1. 포인터 다루기
2. 이중 포인터
#include
int main()
{
int a=9;
int *pa = &a;
prinf("변수 a의 값은 %d 이고 a의 주소는 %p이다.", a, &a);
prinf("포인터 변수 pa의 값은 %p 이고 pa가 가리키는 곳의 값은 %d이다", pa,*pa);
*pa = 12;
printf("a=%d", a);
return 0;
}
포인터 변수의 주소를 저장하는 포인터 변수
int x;
int *p = &x;
int **pp = &p;
이중 포인터가 가리키는 포인터를 이용해서 변수에 접근하려면 **처럼 두번 간접참조를 해야함
3. 포인터 오류int x;
int *p = &x;
int **pp = &p;
이중 포인터가 가리키는 포인터를 이용해서 변수에 접근하려면 **처럼 두번 간접참조를 해야함
포인터 변수이므로 반드시 초기화해야함
포인터 변수를 초기화 하지 않고 사용하면 실행 에러가 발생함
int *p; -> 쓰레기값
*p = 10; -> 에러
널 포인터 : 포이턴가 다른 변수를 가리키지 않을 때는 NULL로 초기화
포인터를 안전하게 사용하려면 우선 포인터가 널 포인터인지를 검사
if(p!=NULL)
*p =10;
포인터 변수의 데이터 형이 반드시 포인터 변수가 가리키는 변수의 데이터 형과 일치해야함
short a;
int *p = &a; -> 컴파일 경고가 발생
*p = 10; -> 컴파일 경고를 뮈하고 실행하면, 실행 에러가 발생
포인터 변수를 초기화 하지 않고 사용하면 실행 에러가 발생함
int *p; -> 쓰레기값
*p = 10; -> 에러
널 포인터 : 포이턴가 다른 변수를 가리키지 않을 때는 NULL로 초기화
포인터를 안전하게 사용하려면 우선 포인터가 널 포인터인지를 검사
if(p!=NULL)
*p =10;
포인터 변수의 데이터 형이 반드시 포인터 변수가 가리키는 변수의 데이터 형과 일치해야함
short a;
int *p = &a; -> 컴파일 경고가 발생
*p = 10; -> 컴파일 경고를 뮈하고 실행하면, 실행 에러가 발생
'JAVA기반스마트웹개발2021 > 프로그래밍언어 활용' 카테고리의 다른 글
포인터와 문자열 (0) | 2021.07.30 |
---|---|
포인터 활용 (0) | 2021.07.29 |
문자열 (0) | 2021.07.27 |
배열 (0) | 2021.07.27 |
변수의 스코프 (0) | 2021.07.26 |