본문 바로가기

프로그래밍 언어/C언어7

[C언어 #7] 구조체 (struct, typedef) 배열은 크기가 같은 동일한 데이터 타입만 묶을 수 있습니다.하지만 구조체를 사용하면 크기나 형식이 다른 데이터도 하나로 묶어서 관리할 수 있습니다.     1. 구조체 개념struct 구조체 이름{자료형1 변수_이름1;자료형2 변수_이름2;...}위 구조체는 몬스터 데이터를 저장하기 위해 서로 다른 데이터 타입(문자 배열, 정수)을 하나로 묶은 예제입니다.Monster는 새로 정의된 데이터 타입으로 int, char 등과 동일한 역할을 합니다.   2. 구조체 변수 구조체를 사용하려면 변수를 선언한 후, 각 요소에 접근하여 데이터를 저장하거나 읽어옵니다. 구조체 변수의 요소에 접근하려면 요소 지정 연산자(.)가 필요합니다.예를 들어 monster.name은 monster 변수의 name 요소에 접근합니다.. 2024. 12. 6.
[C언어 #6] 다차원 포인터 (2차원) 다차원 포인터는 메모리 주소를 여러 단계로 간접 참조하는 포인터로, 포인터의 개념을 한 단계 더 확장한 것입니다.      1. 다차원 포인터 개념 포인터는 메모리 주소를 저장하는 변수입니다.다차원 포인터는 이러한 포인터를 가리키는 포인터를 의미합니다.예를 들면 일반 포인터는 메모리 주소를 가리키지만, 다차원 포인터는 다른 포인터의 주소를 가리킵니다. 차원은 포인터가 참조하는 단계에 따라 증가합니다.일반 포인터: *ptr2차원 포인터: **ptr   2. 다차원 포인터 선언(자료형)**(변수 이름); 다차원 포인터 중 가장 자주 사용하는 2차원 포인터 예시입니다. 다차원 포인터는 자료형 앞에 차원의 개수만큼 *을 붙여 선언합니다.*의 개수가 많아도, 다차원 포인터 역시 메모리 주소를 저장하는 변수이므로 .. 2024. 12. 5.
[C언어 #5] 표준 입력 함수 (getchar, getc, gets, scanf) 표준 입력 함수를 사용하려면 프로젝트 상단에 #include 를 작성해야 합니다.표준 출력 함수(putc, printf 등)와 비슷하지만 포인터에 대한 개념이 필요합니다.     1. 단일 문자 입력 함수 getchar getchar는 get + character를 합친 단어입니다.단일 문자를 입력받고 이를 int 형식으로 반환합니다.  알파벳이나 숫자와 같은 대부분의 입력 문자는 1바이트 크기이므로, 반환값을 char 변수로도 받을 수 있습니다.하지만 getchar는 특정 상황에서 문제가 생길 수 있습니다.   1번째 입력 후에 누른 엔터키가 2번째 호출에서 입력으로 처리됩니다.이로 인해 2번째 출력은 원치 않는 결과를 출력할 수 있습니다.   이를 해결하기 위해 입력 버퍼를 초기화해야 합니다.C언어에.. 2024. 11. 28.
[C언어 #4] 포인터 (const, void*, 형변환) C#을 배우다 C언어를 배우게 되면 포인터라는 새로운 개념을 접하게 됩니다.포인터는 C언어의 중요한 특징 중 하나로, 성능을 높이고 메모리를 효율적으로 관리할 수 있게 합니다.포인터를 적절히 활용하면, 100바이트를 사용할 데이터를 4바이트로 줄여 처리할 수 있습니다.     1. 포인터 개념 운영체제는 메모리를 1바이트 단위로 관리합니다.32비트 운영 체제에서는 0번지부터 약 42억 번지(2³² - 1)까지의 메모리 주소가 부여되며,이 주소 범위를 저장하려면 4바이트가 필요합니다. 포인터는 바로 이 메모리 주소를 저장하는 변수입니다. 포인터가 4Byte 크기를 가지는 이유도, 메모리 주소를 표현하기 위해 unsigned int와 같은 4Byte가 필요하기 때문입니다.      2. 포인터 선언(*)(자.. 2024. 11. 20.
[C언어 #3] 표준 출력 함수 (putchar, putc, puts, printf) 표준 출력 함수를 사용하려면 프로젝트 상단에 #include 를 작성해야 합니다.#include는 컴파일러에게 특정 파일을 읽도록 지시하는 역할을 합니다.하지만 이 지시는 컴퓨터가 읽을 수 있는 2진수로 번역하는 것이 아니기 때문에 마지막에 세미콜론(;)을 붙이지 않습니다. 표준 출력 함수는 다양한 운영체제에서 동일한 코드로 동작하는 프로그램을 작성할 수 있도록 설계된 함수들입니다.보통 운영체제라고 하면 윈도우를 떠올리지만 맥 OS, 리눅스 등 다양한 운영체제가 사용되고 있습니다.이 표준 출력 함수를 사용하면 서로 다른 운영 체제에서도 문법을 바꾸지 않고 잘 동작하는 프로그램을 만들 수 있습니다.    1-1. 단일 문자 출력 함수 putchar putchar는 put + character를 합친 단어입.. 2024. 11. 19.
[C언어 #2] 자료형의 종류 (signed, unsigned) C언어의 자료형 종류에는 크게 char, int, float가 있습니다.각각의 메모리 크기와 부호에 대해 설명하려 합니다.  1-1. signed char기본적으로 signed가 생략되어 흔히 char라고 사용합니다.1바이트(8비트) 크기의 자료형이며 부호가 있는 데이터를 처리할 수 있습니다. 첫 1비트는 부호 비트(+, -)로 사용하고 나머지 7비트에만 숫자를 저장할 수 있습니다.2⁷ = 128개의 숫자가 가능하기 때문에 0을 포함한 양수 128개(0~127)와 음수 128개(-1~-128)를 저장할 수 있습니다.  1-2. unsigned charunsigned char는 부호 비트 없이 1바이트(8비트) 공간 전체를 숫자 저장 공간으로 사용합니다. 2⁸ = 256 개의 숫자가 가능하기 때문에 0을 .. 2024. 10. 17.