본문 바로가기

C 언어11

C 언어 10일차 : 전역변수와 함수, 헤더파일, #define 전역변수에 대해 알아보겠습니다. 전역변수란 보통적으로 함수 안에 선언되어 함수가 끝남과 동시에 초기화 되는 지역변수와 달리 함수 밖에 선언되어 프로그램 종료시 까지 초기화가 되지 않는 변수를 말합니다. 1. 프로그램이 종료될 때까지 메모리에 상주 2. 전역변수는 자동 초기화 ( 정수 ==> 0, 실수 ==> 0.0... ) 3. 전역변수는 값을 저장하고 있다. 3번의 전역변수는 값을 저장하고 있다 라는 말을 예시를 통해 설명하겠습니다. #include int a = 50; //전역변수는 함수 밖에 선언 void func1() { int a = 100; printf("func1()함수의 a의 값은 => %d\n", a); } int main(void) { func1(); printf("main()함수의 값.. 2022. 12. 30.
C 언어 9일차 : 구조체 오늘은 구조체에 대해서 알아보겠습니다. 구조체란 다양한 데이터 타입의 변수를 하나의 이름을 묶어주는 것 입니다. 구조체의 선언 방식입니다. 예시를 보겠습니다. 예시입니다. st라는 이름을 가진 구조체를 선언헀습니다. 이 안에는 int형 변수 a와 float형 변수 b, char형 변수 c, char형 배열 d 가 있습니다. struct st 데이터 형은 int, float, char, 5개의 인덱스를 가진 문자형 배열의 데이터 값들을 합친 값이 됩니다. 4 + 4 + 1 + (1 * 5) = 14byte 예제를 보겠습니다. struct test { int a; float b; char c; char d[5]; }; struct test t1; //t1이라는 구조체 변수 선언 t1.a = 10; t1.b .. 2022. 12. 30.
C 언어 8일차 : 파일 입출력과 함수의 개념 파일 입출력에 관해서 알아보겠습니다. 여태까지 저희는 코드를 이용해서 화면으로 출력만 해보았습니다. 이번에는 파일에서 읽어보고 파일에 출력을 해보겠습니다. 파일 입출력의 간단한 순서입니다. 파일 포인터를 선언한 후에 위와 같은 방식으로 fopen() 함수를 사용해 열 파일의 경로와 모드를 파일 포인터에 넣어줍니다. 파일 입출력에 관련된 함수들입니다. 파일 입력 함수는 말 그대로 파일에 입력한 값을 넣어주는 함수입니다. 파일 출력 함수는 파일에 있는 문자열을 화면에 출력시켜주는 함수입니다. fgets의 사용방법입니다. 간단한 예제를 하나 보겠습니다. char str[20]; //19자리까지 입력 가능(null자리) FILE* rfp; rfp = fopen("c://test//data1.txt", "r");.. 2022. 12. 29.
C 언어 7일차 : 동적 메모리 할당과 2차원 배열 동적 메모리 할당에 대해서 알아보겠습니다. 우선 정수형 배열을 하나 선언해보겠습니다. int a[4]; 4개의 인덱스를 가진 정수형 배열 a를 선언했습니다. a는 아무런 값을 입력받지 못했지만, 정수형 4개의 인덱스, 즉 12byte의 메모리를 할당받아 사용하고 있습니다. 이런 것을 정적메모리라고 부릅니다. 정적 메모리는 그 안에 값이 있던 없던간에 같음 메모리를 사용합니다. 또한, 할당받은 메모리 외에 추가할게 생기더라도 불가능합니다. 이런 단점을 보완하기 위해 사용하는 것이 동적 메모리 할당입니다. 유동적으로 메모리를 할당해주어 낭비되는 메모리를 없애는 것 입니다. 정적 메모리 : C언어가 메모리를 확보 동적 메모리 : 사용자가 메모리를 확보 간단한 차이가 되겠습니다. 추가로 동적메모리는 사용후에 할.. 2022. 12. 28.
C 언어 6일차 : 배열을 이용한 문자열, 배열과 관련된 함수, gets와 scanf의 차이 배열을 이용한 문자열에 대해서 알아보겠습니다. C언어는 문자열 데이터형이 없습니다. 따라서 문자형 배열을 선언해서 문자열 형식을 구성합니다. abc 라는 문자열을 만들려고 하면, char name[4] = { 'a', 'b', 'c', '\0' }; 일반적인 배열이라 한다면 이런 식으로 선언을 하게 됩니다. 마지막의 인덱스로 들어가는 \0 (null) 이 들어가게 됩니다. 이유는 문자열의 끝났다는 것을 컴퓨터에게 알려주기 위함입니다. 따라서 문자열을 사용할 때에는 \0 (null) 이 들어갈 자리까지 인덱스 값을 하나 늘려서 선언해야 합니다. 또다른 문자열 만드는 방법으로는 char name[4] = "abc"; 이 있습니다. 이는 \0 (null) 값을 넣어줄 필요(컴퓨터가 알아서 해줌)가 없기 때문에.. 2022. 12. 27.
C 언어 5일차 : 배열의 주소와 포인터 지난 시간에 이어서 이번에는 배열의 주소해 대해 알아보겠습니다. int num[3] = {10, 20, 30}; 3개의 인덱스(구성요소)를 가지는 배열 num을 선언했습니다. 이 배열의 주소를 그림으로 나타내면 위와 같은 형식이 될 것입니다. 여기서 배열 num의 인덱스 값인 10, 20, 30의 메모리도 표현해보면 num안에 인덱스 순서대로 메모리가 할당됩니다. 그림의 표 1칸은 1byte를 나타내며, 정수형 변수 3개를 저장하는 배열이기 때문에 배열 num의 크기는 12byte입니다. 배열 num의 첫번째 인덱스는 num[0]으로 표기하는데 이유는 첫번째가 컴퓨터에서는 1이 아닌 0이기 때문입니다. 다음은 표로 본 내용을 소스로 확인해보겠습니다. int main(void) { int num[3] = .. 2022. 12. 24.
C 언어 4일차 : for/while문, 주소/ 배열의 개념 안녕하세요 이번에는 제목과 같이 for/while문, 주소/배열의 개념에 대해 알아보겠습니다. for(초기값; 조건문; 증가값) { 실행구문; } for문의 기본적인 형식입니다. 초기 값이 조건문을 만족하는 한 for문 내부의 실행구문이 계속 반복되는 형식이어서 반복문이라 불립니다. int main(void) { printf("C-Programming\n"); printf("C-Programming\n"); printf("C-Programming\n"); printf("C-Programming\n"); return 0; } 반복문을 사용하여 위의 예문과 같은 결과를 만드는 예문을 보여드리겠습니다. int main(void) { for (int i = 0; i < 4; i++) { printf("C-Pro.. 2022. 12. 22.
C 언어 3일차 : 증감 / 관계 / 논리 연산자와 if문 오늘은 지난 글에서 보았던 대입, 산술 연산자에 이어서 증감, 관계, 논리 연산자에 대해서 알아보겠습니다. 증감연산자란 피연산자를 1씩 증가 혹은 감소 시킬 때 사용하는 연산자입니다. a++ 선 연산 후 증가 ++a 선 증가 후 연산 a-- 선 연산 후 감소 --a 선 감소 후 연산 예문으로 예를 들어보겠습니다. int main(void) { int a = 10; int b; b = a++; printf("b = %d\n", b); printf("a = %d\n", a); return 0; } int main(void) { int a = 10; int b; b = ++a; printf("b = %d\n", b); printf("a = %d\n", a); return 0; } a++와 ++a를 이용한 예문.. 2022. 12. 22.
C 언어 2일차 : 변수의 선언, 대입/산술 연산자, scanf() 앞으로 코딩을 하기 위해서는 변수의 선언은 필수적인 요소 입니다. 변수의 선언에 대해 알아보겠습니다. 변수의 선언에 앞서 변수의 자료형에 대해서 알아보겠습니다. 변수의 자료형 (data Type) 은 크게 4종류로 나뉘겠습니다. 정수형 byte, short, int, long, long long 실수형 float, double, long double 문자형 char 문자열 정수형은 byte, short, int, long, long long 실수형은 float, double, long double 문자형은 char 가 존재합니다. 나뉘는 기준은 용량이 되겠습니다. byte > 1바이트 short > 2바이트 int > 4바이트 long > 4바이트 long long > 8바이트 이상 float > 4바이.. 2022. 12. 21.
C 언어 1일차 : 헤더 파일의 정의와 printf 이번 시간에는 기본적인 소스코드의 입력에 대해서 알아보겠습니다. #include 소스 파일을 만들게 되면 가장 처음으로는 위와 같이 #include 를 입력하실 겁니다. 여기서 #은 전처리 지시자로 # 다음에 오는 명령을 처리하는 역할을 수행합니다. 다음으로 오는 include 는 포함한다는 뜻으로 include 뒤에 오는 헤더 파일을 해당 소스 파일에 포함시키는 역할을 합니다. 에서 .h 는 header file 을 뜻하며 c에서 제공하는 헤더 파일, 사용자가 정의하는 헤더파일 두 종류가 있습니다. c에서 제공하는 헤더파일은 을 사용하며 사용자가 정의한 헤더파일은 " "을 사용합니다. stdio.h 헤더 파일은 standard input output 의 약자로써 기본적인 입출력을 담당하는 헤더파일입니다.. 2022. 12. 20.