Download presentation
Presentation is loading. Please wait.
1
Numerical Analysis Programming using NRs
Eun Joo Rhee
2
Contents Pointer의 개념 Using Numerical Recipes Using Visual Studio
3
Pointer의 개념
4
Pointer 일반 변수와 다르게 메모리의 주소(address) 값만을 저장할 수 있는 특별한 변수
포인터 변수 없이 프로그래밍이 가능하나, 포인터 변수를 이용하면 프로그램이 간결하고 효율적 일반 변수와 구별되며, 변수 선언 방법도 일반 변수 선언과 다름
5
하나의 변수는 변수 이름, 변수에 저장된 저장 값, 저장공간의 주소 값을 가짐 변수 저장 값
Pointer의 개념 2/13 주소 하나의 변수는 변수 이름, 변수에 저장된 저장 값, 저장공간의 주소 값을 가짐 변수 변수이름 저장 값 12FF7C 일반변수 a int a = 5; 5 12FF78 pi int *pi = &a 포인터 변수 12FF7C
6
Pointer의 개념 3/13 a : 5 변수 이름 a 변수 값 5 변수 주소(&a) & 기호는 변수의 주소를 참조하는 포인터 연산자
7
Pointer의 개념 4/13 *p : p : 5 *p 5를 가리키는 포인터변수 p 5를 가지는 값의 주소 &p P를 가리키는 값의 주소
8
Pointer 선언 1) int *pi; 2) int* pi;
C언어는 프리포맷을 지원하므로 공백이 어디에 있는가는 중요하지 않다. C 스팩 문서는 모두 1) 형식으로 되어 있고 C++ 스팩 문서에는 두 형식이 혼재하되 2) 형식이 좀 더 우세하다. Visual C++의 라이브러리인 MFC는 모두 2) 의 형식으로 되어 있다. 1) int *pi; 2) int* pi;
9
Pointer 증감 일반 변수 포인터 변수 int i = 0; // i+1 = 1
int *pi = &i; // pi+1 = pi+(1*sizeof(int))
10
*ptr++ *와 ++는 동일한 연산순위를 가지면서 우측 우선의 결합순서를 가진다.
Pointer의 개념 7/13 *ptr++ *와 ++는 동일한 연산순위를 가지면서 우측 우선의 결합순서를 가진다. ptr++은 후위연산자이기 때문에 연산이 끝나고 ++ 수행된다. 따라서 *ptr이 먼저 수행되고 ptr++이 수행된다. *ptr과 ptr++로 분리할 수 있다.
11
Pointer to function Call by Value 변수의 값을 받아와서 새 변수를 생성
12
Pointer의 개념 9/13 Call by Reference 변수의 주소을 받아와서 그 변수를 이용
13
Pointer Array (1D) int ptr[]와 int *ptr는 같은 의미
* ptr == ptr[0] *(ptr + i) == ptr[i] *(ptr + 1)은 *ptr + 1과 다른 결과이므로 괄호를 주의! C에서 배열은 zero-origin/zero-offset (0부터 시작) float b[4]: b[0], b[1], b[2], b[3]
14
Pointer의 개념 11/13 Using nrutil.c Allocation Deallocation
15
Pointer의 개념 12/13 Pointer Array (2D) 2차원 배열 이름은 이중 포인터 **m
16
Pointer의 개념 13/13 Using nrutil.c Allocation Deallocation
17
Using Numerical Recipes
18
Using Numerical Recipes 1/4
Simple example – SVD
19
Using Numerical Recipes 2/4
svdcmp.c input output
20
Using Numerical Recipes 3/4
xsvdcmp.c
21
Using Numerical Recipes 4/4
xsvdcmp.c
22
Using Visual Studio
23
Using Visual Studio 1/10 At 2008
24
Using Visual Studio 2/10
25
Using Visual Studio 3/10
26
Using Visual Studio 4/10
27
Using Visual Studio 5/10 미리 프로젝트 폴더에 필요한 파일들을 옮겨 놓는다
28
Using Visual Studio 6/10
29
Using Visual Studio 7/10
30
Using Visual Studio 8/10
31
Using Visual Studio 9/10
32
Using Visual Studio 10/10
33
Other questions to heckism@mr.hanyang.ac.kr
Similar presentations