study 36

매개변수의 디폴트 값(Default Value)

C++의 함수에는 '디폴트 값'을 설정할 수 있다. 매개변수에 설정하는 '디폴트 값' int MyFuncOne(int num=7) { return num+1; } int MyFuncTwo(int num1=5, int num2=7) { return num1+num2; } "매개변수의 디폴트 값은 함수 호출 시 인자를 전달하지 않으면 7이 전달된 것으로 간주하는 것" MyFuncOne(); //7이 전달된 것으로 간주! MyFuncTwo(7); MyFuncTwo(); //5와 7이 전달된 것으로 간주! MyFuncTwo(5, 7); DefaultValue1.cpp #include using namespace std; int Adder(int num1=1, int num2=2) { return num1+num..

study/C++ 2020.05.19

함수 오버로딩(Function Overloading)

//C언어 함수 오버로딩의 이해 int MyFunc(int num) { num++; return num; } int MyFunc(int a, int b) { return a+b; } int main(void) { MyFunc(20); //MyFunc(int num) 함수의 호출 MyFunc(30,40); //MyFunc(int a, int b) 함수의 호출 return 0; } "함수 호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하기 때문에 매개변수의 선언 형태가 다르다면, 동일한 이름의 함수 정의를 할 수 있는 것이 함수 오버 로딩이라고 한다" MyFunc(30, 40); //함수 호출 문 "두 개의 int형 정수를 인자로 전달 받을 수 있는 MyFunc라는 함수를 찾는다" "매개..

study/C++ 2020.05.19

WIN API [GetVolumeInformation() 함수]

BOOL GetVolumeInformationA( _In_opt_ LPCSTR lpRootPathName, _out_opt_ LPSTR lpVolumeNameBuffer, _In_ DWORD nVolumeNameSize, _out-opt_ LPDWORD lpVolumeSerialNumber, _out-opt_ LPDWORD lpMaximumComponentLength, _out-opt_ LPDWORD lpFileSystemFlags, _out-opt_ LPSTR lpFileSystemNameBuffer, _In_ DWORD nFileSystemNameSize ); GetVolumeInformation() 함수는 지정된 루트 디렉터리가 속한 파일 시스템 정의와 볼륨 정보를 가져오는 함수입니다. 변수 유형 ..

study/C언어 2020.04.08

구조체 정리

구조체란? 구조체(structure type)란 사용자가 C언어의 기본 타입을 가지고 새롭게 정의할 수 있는 사용자 정의 타입입니다. 구조체는 기본 타입만으로는 나타낼 수 없는 복잡한 데이터를 표현할 수 있습니다. 배열이 같은 타입의 변수 집합이라고 한다면, 구조체는 다양한 타입의 변수 집합을 하나의 타입으로 나타낸 것입니다. 이때 구조체를 구성하는 변수를 구조체의 멤버(member) 또는 멤버 변수(member variable)라고 합니다. 구조체의 정의와 선언 struct 구조체이름 { 멤버변수1의타입 멤버변수1의이름; 멤버변수2의타입 멤버변수2의이름; ... }; struct라는 키워드를 사용하여 구조체의 시작을 알리고, 구조체 이름인 book으로 구조체를 정의하고 있습니다. 중괄호 사이에 char..

study/C언어 2020.04.02

[c언어] 입출력 정리

printf("\'Hello \'"); //작은따옴표 표시 printf("\"Hello \""); //큰따옴표 표시 scanf("%1d %1d %1d %1d %1d",&a, &b, &c, &d, &e); //1개의 정수씩 변수에 저장한다. scanf("%u", &n) //unsigned int 입력받으려면 %u를 사용한다. scanf("lf", &n) //double(long float) 형식으로 입력 %.11lf를 사용하면 소수점 이하 11자리까지 출력된다. fgets()를 사용하면 공백 문자가 포함되어있는 문장을 입력받아 저장할 수 있다. 만약, 아래처럼 scanf("%s",...)를 이용해 문장을 입력받으면, 첫 번째 단어까지만 저장된다 char data[2001]; fgets(data, 2000,..

study/C언어 2020.04.02

인수 전달 방법

인수 전달 방법 함수를 호출할 때에는 함수에 필요한 데이터를 인수(argument)로 전달해 줄 수 있습니다. 이렇게 함수에 인수를 전달하는 방법에는 크게 다음과 같이 두가지 방법이 있습니다. 1. 값에 의한 전달(Call by value) 2. 참조에 의한 전달(Call by reference) 값에 의한 전달(Call by value) 값에 의한 전달 방법은 인수로 전달되는 변수가 가지고 있는 값을 함수 내의 매개 변수에 복사하는 방식입니다. 복사된 값으로 초기화 된 매개변수는 인수로 전달된 변수와는 완전히 별개의 변수가 되며, 따라서 함수 내에서 매개변수 조작은 인수로 전달되는 변수에 아무런 영향을 끼치지 않습니다. 실행 결과 변수 var의 초기값 : 10 local() 함수 호출 후 var의 값 ..

study/C언어 2020.03.31

배열(Array) 과 포인터(Pointer)

배열(Array) 이란? 배열은 같은 타입의 변수들로 이루어진 유한 집합으로 정의됩니다. 배열을 구성하는 값을 배열 요소(element)라고 하며, 배열 위치를 나타낸 숫자를 인덱스(index)라고 합니다. 1차원 배열 타입 배열 이름[상수]; 타입 배열 이름[ ] = {배열 요소 1, 배열 요소 2,....}; 2차원 배열 타입 배열 이름[행][열]; 포인터(Pointer) 주소 값의 이해 데이터의 주소 값이란 해당 데이터가 저장된 메모리의 시작 주소를 의미합니다. C언어에서는 이러한 주소 값을 1바이트 크기에 메모리 공간으로 나누어 표현합니다. 예를 들어, int 형 데이터는 4바이트의 크기를 가지지만, int형 데이터의 주소값을 시작 주소 1바이트만 가리킵니다. C언어에서 포인터(pointer) 란..

study/C언어 2020.03.31

함수(Function) 란?

함수란? 프로그래밍에서 함수란 하나의 특별한 목적의 작업을 수행하기 위한 코드의 집합 함수 사용 이유 1. 함수를 사용하는 가장 큰 이유는 바로 박복적인 프로그래밍을 피할 있다. 2. 프로그램에서 독립 작업을 여러 번 반복해야 할 때는 해당 작업을 수행하는 함수를 작성하면 된다. 3. 프로그램이 필요할 때마다 작성한 함수를 호출하면 해당 작업을 반복해서 수행 가능 함수의 원형 선언 int bigNum(int, int); //함수의 원형 선언 함수의 정의 1. 반환 타입(return type) : 함수가 모든 작업을 마치고 반환하는 데이터의 타입을 명시합니다. 2. 함수 이름 : 함수를 호출하기 위한 이름을 명시합니다. 3. 매개변수 목록(parameters) : 함수 호출 시에 전달되는 인수의 값을 저장..

study/C언어 2020.03.31

스택 프레임(Stack frame)

스택 프레임 개념 메모리의 스택(Stack) 영역은 함수의 호출과 관계되는 지역변수와 매개변수가 지정되는 영역 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸합니다. * 함수가 호출되면 스택에는 함수에 매개변수, 호출이 끝난 뒤 돌아갈 반환 주소, 함수에서 선언된 지역 변수 등이 저장된다. 이렇게 스택 영역에 차례대로 저장되는 함수를 호출 정보를 스택 프레임(Stack frame)이라고 합니다. 스택은 후입 선출 LIFO(Last-in First-out) 방식이라고도 합니다. 스택 프레임 동작 방식 예제) int main(void) { func1(); //func1() 호출 return 0; } void func1() { func2(); //func2() 호출 } void func..

study/C언어 2020.03.31

[C언어] printf 함수와 scanf 기본적인 이해

printf 함수를 이용한 정수의 출력과 서식문자 printf 함수를 이용하면 문자열 이외의 데이터를 다양한 형태로 출력하는 것이 가능하고, 정수를 출력하는 것도 가능하다 예졔) printfOne.c #include int main(void){ printf("Hello EvreyOne \n"); printf("%d\n", 1234); printf("%d %d\n", 10 , 20); return 0; } 아래의 그림을 보시면 문자열의 첫 번째로 등장하는 것이 %d이다, 이러한 문자를 가르켜 '서식문자'라 하는데, 이는 출력의 형태를 지정하는 용도로 사용된다. %d는 10진수 정수를 가르키는 출력의 형태이고 1234를 전달받아 화면의 출력하는 식으로 printf가 이루어 진다. Scanf 함수를 이용하여 ..

study/C언어 2019.12.20