반응형

전체 글 40

30. 문자열

#include int main() { char str[4] = { 'a', 'b', 'c', 'd' }; printf("%s\n", str); return 0; } 이 코드를 실행시켜보면 abcd가 출력되고, 이상한 문자가 계속 해서 출력되는것을 알 수 있다. 이것은 문자열의 끝을 알리는 NULL 표식이 없기 때문이다. C언어에서 NULL 이란 0 을 의미하며, 아스키코드로서의 NULL 은 '\0' 라고 표현한다. char 형 변수에 숫자를 넣을 때에는 0,1,2,3... 이렇게 넣으면 되지만, ASCII 코드의 문자를 넣을 때에는 'a' 이런식으로 소괄호로 묶어 줘야 한다. ASCII 코드의 첫번째 값이 0 이며 이것은 NULL 을 의미하느데, ASCII 코드의 48번째 숫자문자 '0' 과 구별하기 ..

C언어(2020년) 2020.11.04

29. typedef

자료형의 별칭을 지정할 수 있다. // typedef (자료형) (별칭) typedef char c8; typedef unsigned char u8; typedef short d16; typedef unsigned short u16; typedef int d32; typedef unsigned int u32; typedef float f32; typedef double f64; 이제 우리는 int age = 19; 을 하는 대신 d32 age = 19; 를 할 수 있다. // typedef (자료형)* (별칭) typedef char* charptr; typedef short* shortptr; typedef int* intptr; 이와 같이 포인터를 재정의 할 수 도 있다. 이제 우리는 int* p1;..

C언어(2020년) 2020.11.04

28. union

#include union Distance { int inch; double meter; }; int main() { union Distance distance = { 20 }; printf("%d\n", distance.inch); printf("%lf\n", distance.meter); distance.inch = 20; distance.meter = 0.508; printf("%d\n", distance.inch); printf("%lf\n", distance.meter); return 0; } union 은 구조체와 비슷하지만, 다른점은 변수를 1개만 사용할 수 있다는 것이다. 위의 예제에서 union 은 int inch 와 double meter 두개를 가지고 있지만, 이중 가장큰 double..

C언어(2020년) 2020.11.04

27. 전처리기

#define _WINDOW_SYSTEM #ifdef _WINDOW_SYSTEM (코드) #endif 이런식으로 #ifdef 와 #endif 사이의 코드가 특정 #define 이 되어있는 경우에만 코드가 컴파일 되도록 설정 할 수 있다. #ifdef _WIN64 (코드) #elif _WIN32 (코드) #elif __APPLE__ #if TARGET_IPHONE_SIMULATOR // iOS Simulator #elif TARGET_OS_IPHONE // iOS device #elif TARGET_OS_MAC // Other kinds of Mac OS #else # error "Unknow Apple platform" #endif #elif __linux__ (코드) #elif __unix__ (코드)..

C언어(2020년) 2020.11.04

26. 가변인자 함수 만들기

printf( ) 함수의 경우 printf("Helle World\n"); 라고 쓰면 인자가 1개 이다. printf("%d\n", 10); 라고 쓰면 인자가 2개 이다. printf("%d, %d\n", 10, 20); 라고 쓰면 인자가 3개이다. 이런식으로 인자가 변하는 함수는 어떻게 구현 되어있을까? 또는 어떻게 구현할 수 있을까? 먼저.... #include // args는 고정 매개변수 void printfMy(int args, ...) { printf("%d ", args); } int main() { printfMy(1, 10); printfMy(2, 10, 20); printfMy(3, 10, 20, 30); printfMy(4, 10, 20, 30, 40); return 0; } 이와 같..

C언어(2020년) 2020.11.04

25. Call by Value, Call by reference, Call by Address

Call By Value 값에 의한 호출 Call By Reference 참조에 의한 호출 Call By Address 주소에 의한 호출 위 3가지 형식의 함수가 존재 한다. // Call By Value int add(int a, int b) { int c = a + b; return c; } int main() { int num1 = 10; int num2 = 20; int num3 = add(num1, num2); return 0; } 위 예제에서 num1 과 num2 는 변경되지 않고, num3 는 30이 대입된다. 만약에 #include // Call By Value int add(int a, int b) { a += 1; b += 1; int c = a + b; return c; } int m..

C언어(2020년) 2020.11.04

24. 함수

int add(int a, int b) { int c = a + b; return c; } 함수는 이와 같은 구조이다. 반환자료형(여기에서는 int) - 반환이 없는 경우도 있는데 반환이 없으면 void 라고 쓰면된다. 함수명(여기에서는 add) 인자들(여기에서는 int a, int b) - 인자가 없는경우도 있다. 함수의 시작을 알림(여기에서는 { ) 반환될 값(여기에서는 return c;) - 반환이 없는 함수는 return 도 없음. 함수의 끝을 알림(여기에서는 } ) 이 함수를 사용하려면, #include int add(int a, int b) { int c = a + b; return c; } int main() { int num = add(10, 15); printf("%d\n", num); ..

C언어(2020년) 2020.11.04

23. define

#define PI 3.14 이런식으로 자주 쓰는 것을 정의 해 놓을 수 있다. 프로그래밍은 3.14 란 숫자대신에 PI 를 사용하여 연산을 하면되는것이다. #include #define _USE_MATH_DEFINES #include int main() { float a = M_PI; printf("%f\n", a); } #define _USE_MATH_DEFINES #include 를 포함해주면 M_PI 의 값이 정의 되어 있다. #define _CRT_INT_MAX 2147483647 int 의 최대값이 21억 얼마도 이미 정의 되어 있다. 헤더화일이 한번만 컴파일 되도록 하기 위해 다음과 같이 하기도 한다. #ifndef __MyHeader_H__ #define __MyHeader_H__ (헤더 ..

C언어(2020년) 2020.11.04

22. const

const int max = 200; printf("%d\n", max); 이런식으로 변수 int 앞에 const 를 써 주면 선언과 동시에 초기화를 해 줘야 하며, 그 이후에는 값을 바꿀수 없다. 변수란 변하는 숫자를 의미하는데, 이 경우 정확히 말하면 변수가 아니라 상수가 되는 것이다. 즉, 변수의 상수화를 시키기 위해서 const 를 쓴다. 참고) const 는 constant "변함없는" 이라는 뜻의 약자 포인터 변수의 경우 const 를 앞에 붙이는 경우와, 뒤에 붙이는 경우 두가지가 있다. int a = 0; const int* p1 = &a; int* const p2 = &a; p1 의 경우에는 값을 변경할 수 없고(ex *p1 = 1; 하면 에러) 주소는 변경 할 수 있다.(p1++; 나 ..

C언어(2020년) 2020.11.04

21. 구조체

여러가지 정보를 묶어서 처리하기 위해서 구조체가 필요하다. struct Human { char name[50]; int age; char gender; char tel[50]; }; struct Human human; 위와 같이 정의 하고 선언하여 사용한다. 구조체의 초기화 struct Human { char name[50]; int age; char gender; char tel[50]; }; struct Human human = { "leader2333", 99, 'M', "010-000-0000" }; printf("name : %s\n", human.name); printf("age : %d\n", human.age); printf("gender : %c\n", human.gender); prin..

C언어(2020년) 2020.11.03
반응형