programTips.Tutorial

[C] 포인터

dd2i 2012. 12. 17. 11:27
반응형

3-7-다.포인터.

포인터를 직접 다룰 수 있기 때문에 C언어를 고급언어가 아닌 중급언어로 분류.

어셈블리와 같은 수준의 시스템 프로그래밍까지도 가능.


일반적 변수 = 수치.값을 저장.


포인터형(포인터형변수) = 번지(Address)를 기억. 

포인터형은

데이터가 보관되어 있는 메모리 위치를 기억하고 있기 때문에 직접 값을 조작할 수도 있고 주변의 다른 값까지도 조작가능. 

위치는 단순히 4바이트의 번지이기 때문에 함수의 인수로 전달하거나 받기도 효율적. 

함수로 포인터를 전달하면 포인터가 가리키는 메모리를 함수가 직접 조작 가능.


타입 *변수명; //포인터선언


* : 포인터가 가리키는 번지의 값을 읽음.

& : 변수가 기억되어 있는 메모리 번지를 읽음.



10-1-가.T형 포인터

포인터 =  메모리의 한 지점을 가지는 변수. 번지값을 가지는 변수.

임의의 타입 T가 있을 때 T형의 포인터 변수를 선언할 수 있다.


10-1-나.포인터의 타입

대상체(object)= 포인터가 가리키는 실체(번지에 들어있는 값).


10-1-다.포인터 연산

1. 포인터끼리 더할 수 없음.

2. 포인터끼리 뺄 수는 있으며 연산결과는 정수임.

3. 포인터에 정수를 더하거나 뺄 수 있으며, 연산결과는 포인터임.

4. 포인터끼리 대입할 수 있음.(단, 포입터 타입 일치할 경우. 틀릴 경우 캐스트연산자로 강제로 타입일치시켜야함.)

5. 포인터와 실수와의 연산은 허용되지 않음.(번지라는 값은 정수의 범위에서만 의미 있기 때문)

6. 포인터에 곱셉이나 나눗셈을 할 수 없음. (필요성이 없음)

7. 포인터끼리 비교는 가능함.


10-1-라.*ptr++

*ptr++ 

ptr 이 포인터형의 변수일 때, 아주 빈번히 사용되는 문장. 

C언어의 특징을 잘 표현하는 전형적 포인터 연산문.





반응형

'programTips.Tutorial' 카테고리의 다른 글

C++  (0) 2012.12.26
비트 구조체  (0) 2012.12.26
new  (0) 2012.12.26
C++  (0) 2012.12.26
객체지향프로그래밍 OOP(Object Oriented Programming)  (0) 2012.12.26
[C] 함수  (0) 2012.12.21
[C] 배열(Array)  (0) 2012.12.18
[C] 동적메모리할당.  (0) 2012.12.17
[C] void형 포인터  (0) 2012.12.17
유용한 일러스트레이터 shortcut  (0) 2012.09.28