본문 바로가기

반응형

언어/C언어

(15)
[C 언어] 13. 구조체 구조체는 서로 다른 데이터 타입들을 함께 모아 놓은 것입니다. 각각의 원소들을 member라고 부릅니다. 구조체의 선언은 다음과 같이 합니다. struct student { //struct student 타입 정의 int id; char name[10]; }; struct는 키워드 이고 student는 구조체의 이름입니다. 구조체의 타입은 여기서 struct student 타입으로 정의한 것입니다. 구조체를 선언하고, 구조체 변수를 한번에 선언할 수 있습니다. struct student { //sruct student 타입 정의 & 변수 선언 int id; char name[10]; } a1, a2, a3; 구조체를 선언함과 동시에 struct student 타입의 a1, a2, a3라는 구조체 변수는 ..
[C 언어] 12. File File fopen은 데이터를 송수신하기 위해 파일과 스트림을 생성합니다. 파일에 어떠한 짓을 하려면 open을 먼저 해주어야합니다. open은 파일에 접근하기 위한 정보를 메모리에 올립니다. FILE* fopen(cosnt char* filename, const char* mode) 파일의 오픈 모드는 파일 접근 모드와 데이터의 입출력 모드를 말합니다. 파일의 접근 모드는 다음과 같이 있습니다. r : 읽기, 먼저 파일이 있어야 합니다. w : 쓰기. 빈 파일을 생성합니다, 파일이 없으면 생성합니다. a : 마지막에 이어 쓰기, 파일이 없으면 생성합니다. r+ : 읽기, 쓰기, 파일이 있어야 합니다. w+ : 읽기, 쓰기, 빈 파일 생성, 파일 없으면 생성 a+ : 읽기, 마지막에 쓰기, 파일 없으면 ..
[C 언어] 11. Input/Output Stream, String Input/Output Stream 스트림이란 데이터를 송수신하기 위한 통로의 개념입니다. 가까운 예시로는 OTT스트리밍이나, 음악 스트리밍이 있습니다. 스트림은 데이터가 연속으로, 순서대로, 시리즈로 전송, 저장되는 것을 말합니다. 스트림에는 2가지가 존재하는데 하나는 binary stream으로 영상물이 여기에 해당하고, 다른 하나는 text stream으로 소스코드가 여기에 해당합니다. C언어에서 스트림의 데이터 타입은 FILE*로 file pointer로 지칭합니다. 스트림을 읽고 쓸 정보가 필요합니다. 이러한 정보를 FILE은 스트림 연결에 관한 내부의 상태정보를 저장합니다. 정보는 3가지를 저장합니다. 첫 번째로 file position indicator입니다. 말 그대로 파일의 위치를 지정하..
[C 언어] 10.포인터 (찾는 내용이 있으시다면 Ctrl + F를 눌러 원하는 내용을 찾아주세요.) 포인터 포인터는 주소값을 저장하기 위한 변수입니다. 포인터의 선언은 다음과 같이 합니다. int *x; int a; x = &a 이렇게 선언한다면 데이터형이 int인 포인터형을 선언한 것입니다. 포인터는 주소를 저장하는 변수이기 때문에 변수의 주소를 반환하는 연산자 &를 사용하여 변수의 주소값을 할당합니다. *은 참조 연산자로 포인터가 가리키는 주소에 저장 되어있는 값을 참조합니다. 이때의 *은 포인터를 선언했을 때의 *와는 다릅니다. 포인터 변수의 크기는 사용하는 컴파일러마다 다릅니다. 개발환경이 32비트면 포인터의 크기도 32비트, 64비트이면 64비트 입니다. 포인터 사용의 예시를 보겠습니다. #include int mai..
[C 언어] 9. 함수 함수 한마디로 설명하면 특정 작업을 수행하기 위해 변수들의 선언과 명령들이 포함된 독립적인 묶음입니다 C 프로그램은 하나 이상의 함수들로 구성되어 있습니다. 그 중 하나가 main함수입니다. 함수는 호출되면 호출하는 함수로부터 통제를 받습니다. 호출된 함수는 자신의 작업을 수행하고 나면 호출한 하무에게 되돌아가며 이때 결과 값(return)을 반환합니다. 혹은 안할 수도 있습니다. 프로그램은 항상 main에서 시작하고, main은 차례로 다른 함수를 호출합니다. main함수는 모두 수행한후 운영체제로 돌아가서 프로그램은 종료됩니다. -함수 사용의 장점 문제를 분리하여 단순화 시킬 수 있습니다. 함수는 한 곳 이상에서 코드를 재사용 할 수 있습니다. 이미 제공되어 있는 library를 통해 사전에 필요한 ..
[C 언어] 8. 배열 배열 배열은 같은 데이터 타입의 변수의 집합입니다. 배열은 배열의 원소들을 저장할때 실제로 인접한 메모리 위치를 사용합니다. 또한 배열은 초기화 할때 특별한 값으로 초기화하지 않는다면 0이나 NULL로 초기화 해주는게 좋습니다. 배열의 선언은 다음과 같습니다. 자료형 변수명[요소개수]; int a[10]; //int array char b[10]; //char array (i.e. string) 위와 같이 int a[10]으로 선언한다면 데이터 타입이 int인 변수가 메모리 상에 연속적으로 10개가 붙어서 생성됩니다, a[i]라고 한다면 i번째 인덱스에 접근한다는 의미입니다. 배열의 인덱스는 0부터 시작합니다. 따라서 마지막 인덱스는 배열을 선언할때 []에 써준 숫자보다 1 작은 수 입니다. 그렇다고 인..
[C 언어] 7. 제어문 제어문 1. 조건문 조건문이란 어떤 조건이 주어졌을때 그 조건이 성립한다면 동작을 수행하도록 해주는 문장을 말합니다. 주어진 조건에 따라 프로그램이 동작하거나 동작하지 않도록 할 수 있습니다. 조건을 판단할 때는 boolean으로 참 혹은 거짓으로 판단합니다. 비유를 하자면 갈림길에서 어떠한 길로 갈지 선택한다고 생각할 수 있습니다. 조건문에는 if문과 switch문이 있는데 하나씩 살펴보겠습니다. 2. 반복문 반복문에는 while문, for문, break문, continue문이 있습니다. 조건이 참인 동안에 반복을 수행합니다. 만약 반복을 수행하다가 조건이 거짓이 된다면 반복문을 빠져나옵니다. If문 If문은 조건이 참이면 명령문을 실행합니다. 이때 조건을 condition이라고 하고 명령문들을 sta..
[C 언어] call by value, call by reference 알아보기 안녕하세요. 복학하고 바빠서 오랜만에 글을 쓰네요. 오늘 알아볼것은 call by value, call by address 입니다. 이것들은 함수의 매개변수에 어떤값을 넣는가에 대한 개념입니다. 순서대로 대략적인 의미를 전달해보자면 call by value : 값에 의한 전달 call by reference : 주소에 의한 전달 입니다. 말로만 해선 무슨 말인지 모를 수 있을테니 순서대로 설명하면서 코드를 함께 볼게요. 1.call by value #include void swap(int num1,int num2) { int tmp; tmp = num1; num1 = num2; num2 = tmp; } void main() { int a = 1; int b = 2; swap(a,b); printf("a ..

반응형