본문 바로가기

전체 글

C언어 포인터와 배열(C언어 pointer and array) 1편 2020/10/17 - [Programming/C] - C언어 포인터 기본(C언어 basic pointer)2편 2020/10/17 - [Programming/C] - C언어 포인터 활용(C언어 use of pointer) feat. swap함수 1편에서 했던 포인터 타입들의 크기가 모두 동일한데 여러개의 포인터 타입이 존재하는 이유가 무엇인지 살펴보았다.(포인터 타입의 크기는 32bit machine에서는 4byte, 64 bit machine에서는 8byte이다) 결론을 다시 말하자면, 온전한 데이터를 읽으려면 지정된 주소부터 몇 byte를 읽어야 하는지 알려주기 위해서 포인터 타입이 존재한다 했다. 123int b = 0xffffffffint *pointerB = &b; cs 위 코드를 그림으.. 더보기
C언어 포인터 활용(C언어 use of pointer) feat. swap함수 1편 : 2020/10/17 - [Programming/C] - C언어 포인터 기본(C언어 basic pointer) 1편에 이어, 포인터를 어디에 사용하는지에 대해 살펴보자. 포인터는 왜 사용할까?정답부터 말하면, 변수의 범위(scope)를 확장할 수 있기 때문이다. 범위? scope? 가 뭔데? 라고 물으면 아래 코드를 보자. 12345678910111213141516171819202122232425int global_var; int func1(int a, int b) { int c; double d; global_var = 10;// OKAY i = j = 5; // FAIL ...} int main(){ int i, j; global_var = 5; // OKAY a = b = c = 3; // .. 더보기
C언어 포인터 기본(C언어 basic pointer) 민규최를 위한 포인터 글 변수(variable)란 무엇인가?수학에서 변수는 변할 수 있는 수, 즉 상수(constant)와 반대 개념으로 사용이 된다. 프로그래밍에서도 변수의 성질은 마찬가지이지만, 변수는 데이터를 저장할 수 있는 메모리 공간에 붙인 이름(혹은 그냥 메모리 공간 자체)을 의미한다.(메모리 공간에 이름을 적어 놓았기에 그 메모리 공간의 위치를 찾을 수 있어 해당 공간안에 있는 데이터 값을 바꿀 수 있다. 라고 생각하면 편함) int a; 라는 코드를 실행하면, 아래 그림과 같이 메모리 공간이 할당되고(아래 그림에서 네모), 그 공간의 이름을 a라고 명명한다. 만약 여기서 a = 10; 이라는 코드를 실행하면, 아래 그림과 같이 a라는 메모리 공간 안에 10 이라는 데이터 값을 넣게 된다. .. 더보기