반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 엑티브엑스
- QT
- HTML
- c언어
- 안드로이드
- Java
- QTcpServer
- 잡담
- Qt 소켓프로그래밍
- 이륜차
- 정성하
- Qt4
- 마영전
- 디자이어HD
- android SAF
- FFI
- vuejs
- 스타2
- 윈도우7
- 양평역
- 바이크
- 오토바이
- qt 설치
- 고속도로
- 스타크래프트2
- 자료구조
- 자바
- 재귀함수
- Qt OpenGL
- 알람프로그램
Archives
- Today
- Total
프로그래밍과 잡담
[C언어] 기초 5-1 본문
포인터 연산
포인터도 연산이 가능하다.
막 아무거나 가지고 연산하면 이상한걸 가르키기 때문에 연산을 할때는 배열같은걸 사용할때 사용한다..
배열의 이름은 포인터라 했다..
물론 1차원 배열일때만이다.. 2차원으로 가면 좀 틀려진다..
int array[5];
int *pa; // pointer array라는 줄임이다.
pa = array;
위에 처럼 하면
pa는 array의 주소값을 가지게 된다..
정확히는 array[0]의 주소값을 가지게 된다.
이걸 가지고 포인터 연산을 한다..
pa++를 하면 pa = pa + 1; 이라는 의미이다.. 여기서 1이라는 의미는 int 형의 크기만큼 이동한다는 소리다..
뭔 소리인가 하면 그림으로 설명..
자 pa = array;를 한 상태의 그림이다 ..
그 다음 그림은 pa ++ 한 그림이다.
0x001에서 0x005로 간 크기는 4byte만큼 간다는 소리이다.
어쨌든 포인터 연산은 일반적인 숫자 1을 더하는 연산이 아니라
포인터의 데이터 타입만큼 이동한다는 것이다.
포인터의 사용법.
포인터 변수를 선언도 해보고 연산도 해봤다..
인제 사용하는 방법은
int *pa;
*pa를 하면 포인터가 가지고 있는 수를 쓰겠다는 거다..
int a =1;
int *pa;
pa = &a;
printf("%d \n",*pa);
위에와 같이 하면 pa가 가지고 있는 값을 출력하게 된다..
즉, 출력 값은 1이 나오게된다.
그냥 pa만 해버리면 pa의 주소값을 10진수 형태로 해서 나온다..
그리고 값을 변경할때 역시
*pa = 2; 이렇게 해야한다.
사용법은 이걸로 끝..
///////////////////////
이상한 점이나 궁금한 점은 댓글을 달아주세요
포인터도 연산이 가능하다.
막 아무거나 가지고 연산하면 이상한걸 가르키기 때문에 연산을 할때는 배열같은걸 사용할때 사용한다..
배열의 이름은 포인터라 했다..
물론 1차원 배열일때만이다.. 2차원으로 가면 좀 틀려진다..
int array[5];
int *pa; // pointer array라는 줄임이다.
pa = array;
위에 처럼 하면
pa는 array의 주소값을 가지게 된다..
정확히는 array[0]의 주소값을 가지게 된다.
이걸 가지고 포인터 연산을 한다..
pa++를 하면 pa = pa + 1; 이라는 의미이다.. 여기서 1이라는 의미는 int 형의 크기만큼 이동한다는 소리다..
뭔 소리인가 하면 그림으로 설명..
자 pa = array;를 한 상태의 그림이다 ..
그 다음 그림은 pa ++ 한 그림이다.
0x001에서 0x005로 간 크기는 4byte만큼 간다는 소리이다.
어쨌든 포인터 연산은 일반적인 숫자 1을 더하는 연산이 아니라
포인터의 데이터 타입만큼 이동한다는 것이다.
포인터의 사용법.
포인터 변수를 선언도 해보고 연산도 해봤다..
인제 사용하는 방법은
int *pa;
*pa를 하면 포인터가 가지고 있는 수를 쓰겠다는 거다..
int a =1;
int *pa;
pa = &a;
printf("%d \n",*pa);
위에와 같이 하면 pa가 가지고 있는 값을 출력하게 된다..
즉, 출력 값은 1이 나오게된다.
그냥 pa만 해버리면 pa의 주소값을 10진수 형태로 해서 나온다..
그리고 값을 변경할때 역시
*pa = 2; 이렇게 해야한다.
사용법은 이걸로 끝..
///////////////////////
이상한 점이나 궁금한 점은 댓글을 달아주세요
반응형
'프로그래밍 > C,C++, Win32Api' 카테고리의 다른 글
[C언어] 기초 6 (0) | 2009.03.11 |
---|---|
[C언어] 기초 5-2 (0) | 2009.03.11 |
[C언어] 기초 5 (0) | 2009.03.11 |
[C언어] 기초 4 (0) | 2009.03.11 |
[C언어] 기초 3 (0) | 2009.03.11 |
Comments