분류 전체보기853 함수 포인터, void 포인터 함수도 주소 값을 가지고 있는데 , 이 주소값을 저장하는 변수를 함수 포인터라고 한다. 배열의 이름이 배열의 시작주소 값을 의미한다. 또한 함수의 이름도 함수가 저장된 메모리 공간의 주소 값을 의미한다. 함수의 이름은 상수의 형태인데, 이러한 함수의 주소 값 저장을 위한 포인터 변수를 별도로 선언을 할 수 있다. int Func(int num) {... }; 만약 위와 같이 함수가 선언되었다고 가정하면.. 반환형 : int 매개변수 : int num 그리고 위의 함수의 이름 Func는 Func의 함수의 주소 값을 의미하는 상수형태의 함수 포인터가 된다. Func의 형(type)은 반환형과 매개변수의 선언형태를 기준으로 구분한다. int func1(int num1){..}; int func2(int num.. 2021. 1. 31. 다차원 배열과 포인터, 다중 포인터 다차원 배열은 2차원 이상의 배열을 의미한다. 배열의 선언 방법 int arr[10]; // 길이가 10인 1차원 int형 배열 int arr2[5][5]; //행의 길이 5, 열의 길이 5인 2차원 int형 2차원 배열 int arr3[3][3][3]; //높이길이 3, 행의 길이 3, 열의 길이 3인 int형 3차원 배열 다차원 배열중 2차원 배열이 주로 쓰인다. int arr[3][4]; 위배열을 선언시 메모리 공간에는 다음과 같이 나타난다. [0][0] [0][1] [0][2] [0][3] [1][0] [1][1] [1][2] [1][3] [2][0] [2][1] [2][2] [2][3] 위 그림은 각각 요소에 접근할수 있도록하는 인덱스 값 을 나타낸 것이다. 즉 TYPE 배열이름[행][열]; 이.. 2021. 1. 30. 도전 프로그래밍 4-1, 4-2 //4-1 #define _CRT_SECURE_NO_WARNINGS #include #include typedef struct book { char title[30];//제목 char author[10];//저자 int npage;//페이지 수 }Book; int main() { Book books[3]; int i; printf("도서 정보 입력 \n"); for (i = 0; i < 3; i++) { printf("저자 :");fgets(books[i].author, 3, stdin); books[i].author[strlen(books[i].author) - 1] = 0; //엔터키제거 printf("제목 :");fgets(books[i].title, 3, stdin); books[i].title[.. 2021. 1. 29. 매크로와 선행처리기(Preprocessor) 1. 선행처리기와 매크로 -선행 처리는 컴파일 이전의 처리를 의미합니다. 선행처리는 선행처리기에 의해서, 컴파일은 컴파일러에 의해서, 그리고 링크는 링커에 의해서 진행이된다. 컴파일 이전에 선행처리의 과정을 거친다는 점에 주목을 해야한다. 컴파일 과정을 거치게 되면 바이너리 데이터로 이루어진 오브젝트 파일이 생성된다. 그렇다면 컴파일 이전에 진행되는 선행처리의 과정을 거치게 되면 어떠한 데이터로 채워진 파일이 생성되는가? 선행처리의 과정을 거쳐서 생성되는 파일도 그냥 소스파일일 뿐이다. 왜냐하면 소스파일의 형태가 그대로 유지되기 때문이다. 선행처리기가 하는 일은 지극히 단순하다. 우리가 삽입해놓은 선행처리 명령문대로 소스코드의 일부를 수정할 뿐인데, 여기서 말하는 수정이란 , 단순치환(substitu.. 2021. 1. 28. 메모리 관리와 메모리의 동적할당 1. C언어의 메모리 구조 프로그램을 실행하면 해당 프로그램의 실행을 위한 메모리 공간이 운영체제에 의해서 미리 마련이 된다. 그리고 바로 이 메모리 공간 내에서 변수가 선언되고, 문자열이 선언된다는 것이다. -메모리 구성 프로그램 실행시 운영체제에 의해서 메모리 구조는 다음과 같이 네개의 영역으로 구분이 된다. 메모리 공간을 나눠놓은 이유는 커다란 서랍자으이 수납공간이 나뉘어 있는 이유와 유사하다. 메모리 공간을 나눠서 유사한 성향의 데이터를 묶어서 저장하면, 관리가 용이해지고 메모리의 접근 속도가 향상된다. -메모리 영역별로 저장되는 데이터 유형 *코드 영역 (Code Area) 코드 영역은 이름 그대로 실행할 프로그램의 코드가 저장되는 메모리 공간이다. 따라서 CPU는 코드 영역에 저장된.. 2021. 1. 27. 문자와 문자열 관련 함수 1. 스트림과 데이터의 이동 -무엇이 입력이고 무엇이 출력인가? 데이터의 입력과 출력은 프로그램의 흐름을 뜻하는 것이다. 그렇다면 무엇이 '입력'이고 무엇이 '출력'인가? 프로그램을 중심으로 프로그램 안으로 데이터가 흘러 들어오는 것이 입력이고, 프로그램 밖으로 데이터가 흘러 나가는 것이 출력이다. 가장 대표적인 입력장치로는 키보드가 있으며, 파일도 입력의 대상이 될 수 있다. 그리고 대표적인 출력장치로는 모니터가 있으며, 파일 역시 출력의 대상이 될 수 있다. -데이터의 이동수단이 되는 스트림 서로 떨어져 있는 개체를 연결해주는 다리의 역할을 하는 매개체를 '스트림(Stream)'이라 한다. 실행중인 프로그램과 모니터를 연결해주는 '출력스트림'이라는 다리가 놓여있고, 실행중인 프로글매과 키보드를.. 2021. 1. 26. 이전 1 ··· 137 138 139 140 141 142 143 다음