본문 바로가기
728x90

Programing_Language/C6

함수 포인터(Function Pointer) 와 보이드 포인터(Void*) □ 함수 포인터 - 실행 코드인 함수의 주소를 다루는 포인터 - 함수의 이름은 함수가 있는 메모리의 시작주소가 된다. 함수명이 함수의 메모리의 주소이므로, 함수 포인터에 저장하면 함수를 다양한 방식으로 호출 할 수 있다. 함수 형태는 매개변수의 개수와 자료형, 그리고 반환값의 자료형으로 정의 한다. □ 함수 포인터 배열 - 함수 포인터를 배열에 저장하여 사용할 수 있다. □ 예제로 함수 포인터 살펴보기 함수 포인터를 선언할때 매개변수의 타입 또는 갯수를 설정해주지 않은 경우에는 가리키는 함수의 매개변수 형태와 상관없이 (반환값은 일치해야함) 정상적으로 실행되는 모습을 볼 수 있다. 하지만, 함수 포인터의 매개변수 형태(갯수)를 지정해놓은 경우, 갯수가 맞지 않아 컴파일시 다음과 같은 오류를 보게된다. 에.. 2016. 11. 2.
포인터와 배열(Pointer & Array) -(2/2) □ 2차원 배열 ○ 2차원 배열은 1차원 배열처럼 배열명과 첨자를 사용하여 선언한다. - 각 배열요소의 형태는 int형 변수 4개짜리 1차원 배열이다. - 전체 배열은 12개의 int형 기억공간이 1차원 배열의 형태로 할당된다. ○ 2차원 배열에서의 1차원배열은 2차원배열의 일부. □ 2차원 배열의 초기화 ○ 1차원 배열처럼 초기화하며 초기화 값은 행 단위로 차례로 저장됨. ex) int array[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; 로 선언과 함께 초기화 된다면 int array[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; ○ 만약 해당 배열 요소를 초기화하지 않으면 0으로 채워진다; ex) int array[3][4]={{1},{5,6},{9.. 2016. 9. 24.
구조체(struct) □ 왜 구조체를 사용하는가? - 구조체를 사용하는 이유에 대해서는 특정한 객체(object)에 연관된 추상화된 정보들을 하나로 묶어 구조체 타입으로 정의하여 다루기 쉽게하기 위하여 사용한다. □ 구조체를 정의하는 방법 - struct 구조체이름{데이터타입 변수명;데이터타입 변수명;데이터타입 변수명; ..................}; □ 구조체 . 멤버 접근 연산자 & 함수 인자로서의 구조체 - 18~26행에서 처럼 멤버 접근 연산자(.)를 통하여 구조체 멤버에 접근할 수 있다. - 34번행에서 처럼 함수 파라미터로 구조체 변수를 넘겨줄수도 있다. □ 포인터 구조체 - 포인터의 표현방법은 ->와 .이 있다. -> : 화살표 앞의 변수가 포인터 변수이면 화살표를 사용한다. . : 점 앞의 변수가 포인터가.. 2016. 9. 23.
포인터와 배열(Pointer & Array) -(1/2) □ 배열의 이름은 배열의 시작 주소이다. - 배열의 주소접근 예제) 위 그림에서 int형 변수 3개인 배열을 생성하였다. 첫번째 결과값의 배열의 첫번째 인덱스 array[0]의 주소(&)와 같은 주소를 갖는것을 확인 할 수 있다. sizeof 함수를 사용하여 바이트 크기를 측정하면, 64bit인 경우 주소의 크기는 8바이트를 갖는것을 볼 수 있으나 (32bit인 경우 4바이트) sizeof(array) 2016. 9. 9.
포인터(Pointer) □ 포인터는 변수의 메모리 주소를 저장하는 변수다 변수는 메모리 상의 저장 공간이므로 그 위치(주소)를 알면 사용할 수 있다. □ 주소 연산자(&)프로그램이 사용하는 메모리에는 바이트별로 주소값이 있다. 이 값은 0부터 시작하고 바이트 단위로 1씩 증가하므로 2바이트 이상의 크기를 갖는 변수는 여러 개의 주소값에 걸쳐 할당된다. 예를 들어 변수 a가 메모리 100번지부터 할당되었다면 100번지부터 103번지까지 4바이트에 걸쳐 할당된다. 주소는 변수가 할돵된 메모리 공간의 시작 주소를 사용 주소 연산자(&)의 사용법 예제 포인터는 주소를 저장하는 변수로 일반 변수와 마찬가지로 선언한 후에 사용한다. 선언하는 방법은 변수 앞에 *만 붙여주면 된다. 간접참조 연산자(*) 예제) *pa == num ① num.. 2016. 9. 8.
getenv 함수 -linux system programming 쉘 프로그래밍 □ 형태 - 헤더 : #include char *getenv(const char * name); 반환(char *) 환경 변수의 값. 인수 : char * name 구하려는 환경 변수의 이름 getenv() 함수는 name 이름을 가지는 환경변수에 저장된 값을 읽어온다. 환경 변수는 "key=value" 형태로 저장되며, getenv()의 아규먼트로 들어가는 name은 Key 이름이 된다. 만약 일치하는 name을 가지는 환경변수가 있다면 "값"을 되돌려주고 없다면 NULL을 반환. 2016. 9. 4.
728x90