전체 글 썸네일형 리스트형 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 이라는 데이터 값을 넣게 된다. .. 더보기 가변길이 구조체(flexible array member) 커널 코드를 살펴보다, 아래 예제와 같이struct 선언 마지막에 size가 0인 array를 선언하는 코드를 발견하였다. 1234567struct account { int age; int gender; int name_length; char name[];} cs정확한 이름은 C99에서는 flexible array member 라고 한다. (이전에는 struct hack, zero length array라고도 했다는데 아직까지도 다양하게 불리는 것 같다.) [목적]배열의 크기를 고정시키지 않고 동적으로(dynamic) 선택하고 싶을 때 사용한다. name의 경우, 대략 문자10개로 #define MAX_NAME_LEN 10 으로 하고 char name[MAX_NAME_LEN]으로 할 수 있으나, name.. 더보기 이전 1 ··· 4 5 6 7 8 9 10 11 다음