일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Close
- Callback
- Golang
- write
- 리뷰
- go언어
- File
- install
- 책
- API
- package
- http
- mutex
- json
- Sync
- JavaScript
- GO 언어
- C
- Python
- Linux
- go
- c++
- tcp
- window
- channel
- range
- windows
- FOR
- bitcoin
- 영화
- Today
- Total
목록포인터 (3)
Code Habit
배열을 매개변수로 전달할때 포인터 변수를 사용하여 (시작)주소값을 전달하게 되는데 이 때 우리는 배열의 크기를 같이 전달해야 한다. 원래 배열의 크기는 sizeof()함수로 구할 수 있으나 매개변수로 전달될 때 포인터 변수로 받기 때문에 이를 sizeof() 함수로 처리 할 시 포인터 변수의 크기가 구해지기 때문이다. 즉 매개변수로 배열을 전달할 때는 꼭 크기도 같이 전달하자 ! void func( int* p, int nSize ); void main() { int n[100] = {0, }; printf( "%d\n", sizeof(n) ); // 400 : 4(int) * 100 func(n, 100); // 배열 n 과 사이즈 전달} void func( int* p, int nSize ) // i..
Go 언어는 C, C++와 마찬가지로 메모리 주소를 표현하는 포인터를 지원한다. var 변수명 *자료형 var numPtr *int // 포인터형 변수를 선언하면 nil로 초기화됨 fmt.Println(numPtr) // nil C 언어와는 달리 *(Asterisk, 애스터리스크)를 자료형 앞에 붙인다. 그리고 포인터형 변수를 선언하면 nil로 초기화된다. ※ Go 언어는 NULL 값을 nil로 사용한다. 단 C 언어에서 NULL이 정수 0으로 정의되어 있지만 Go 언어에서 nil은 숫자 0이 아니다. 빈 포인터형 변수는 바로 사용할 수 없으므로 new 함수로 메모리를 할당해야 한다. 포인터 변수 = new(자료형) var numPtr *int = new(int) fmt.Println(numPtr) //..
데이터가 저장된 메모리의 시작주소를 주소값이라 하고 이를 가리키는 것을 포인터라고 한다. int n = 1; int* pn = &n; 포인터는 아래 주소 연산자(&)와 참조 연산자(*)로 사용할 수 있다. 주소 연산자(&) : 변수의 이름 앞에 사용하여, 해당 변수의 주소값을 반환한다. 참조 연산자(*) : 포인터의 이름이나 주소 앞에 사용하여, 포인터가 가리키는 주소에 저장된 값을 반환한다. 문자열이나 배열에서 사용되는 변수명은 시작주소를 가리키는 포인터이다. char sz[100] = {"string"}; // sz는 문자열 "string"의 시작주소 int nArray[20]; // nArray는 배열의 시작주소 포인터 변수는 메모리에서 변수의 위치를 나타내는 주소를 다루는 변수이므로, 그 크기는 ..