- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Crawling
- 파이썬
- 코딩시험
- 프로그래밍
- 기말시험
- 자료구조
- gdrive
- 알고리즘 강의
- 파이썬 강좌
- c언어
- python data structure
- selenium
- 알고리즘 강좌
- 파이썬3
- 중간시험
- 쉬운 파이썬
- 파이썬 강의
- 자료구조 강의
- 파이썬 자료구조
- 면접 파이썬
- 셀레니움
- 크롤링
- 파이썬 입문
- 알고리즘
- python 중간고사
- 코딩문제
- 대학시험
- 채용문제
- 파이썬 알고리즘
- 파이썬활용
목록c언어 (6)
반원 블로그
▶1. 구조체? 프로그래밍에는 int, char와 같은 기본자료형이 있다. 좀더 큰 범주로 보면 자료형에 속하며 자료형에는 앞서 말한 기본자료형, 유도 자료형이 있다. 우리가 흔히 쓰는 배열, 포인터도 유도 자료형에 속한다. 다음 그림을 보자 유도 자료형은 기본 자료형을 응용해서 좀 더 복잡한 자료를 구현하기위해 지원된다. 같은 자료형을 계속 연결되있는 형태인 배열을 생각하면 편할 것이고, 포인터는 동적배열이 가능한 것을 생각하면 이해하는데 도움이 될 것같다. 이러한 유도 자료형중 오늘은 구조체에 대해 알아보자. ▶2. 여러 데이터 타입을 하나로 묶을 수 있는 구조체 struct 구조체를 이용하면, 여러 종류의 변수를 하나로 묶어서 사용할 수 있다. 신체검사지를 무슨 네용이 적혀있을지 생각해보자. 이름,..
▶1 계획단계 : 연결리스트를 구현해보자. 먼저 노드 구현부터 계획하자. – 노드의 구현은 자기 참조 구조체 이용 – Node 라는 구조체를 정의하고, 그 안에 데이터와 구조체 Node의 주소를 저장할 수 있는 변수 선언 - 각 노드는 정수 하나를 입력 받아 저장하도록 한다.struct Node { int n; struct Node* next; }; ▶2 정의한 구조체 Node의 포인터 변수이자 연결 리스트의 시작과 끝을 의미하는 head, last를 만들자. struct Node *head; struct Node *Last; ▶3 기능을 구현할 함수를 미리 계획해보자. //메인 메뉴를 보여주는 함수 void showMenu(); //만들어진 연결 리스트를 순환하며 출력하는 함수 void printNod..
▶1. 연결리스트 이번 포스팅에서는 동적배열처럼 동적메모리에서 자주 사용되는 연결리스트를 알아보자. 연결리스트란 - 구조체와 포인터를 이용해 유동적으로 데이터를 저장할 수 있는 자료구조 - 배열과 다르게 필요할 때 마다 데이터를 추가할 수 있는 매우 유용한 구조 - 배열과 다르게 필요할 때마다 데이터를 추가할 수 있는 구조 동적 배열의 성질을 생각해보자. 보통 기본자료형을 처음부터 정하고, 인덱스를 통해 접근한다. 역으로 생각해서 배열이 인덱스로 접근할 수 있는 이유는 자료형을 알고있기에 첫 위치만 알면 N번째 데이터를 읽어올 수 있기 때문이다. 그렇다면 인덱스를 사용할 수 없는 경우는 무엇일까? 간단하게 3가지로 나눌 수 있을 것이다. 1. 자료형의 크기를 모르는 경우 2. 각 데이터가 중간중간 떨어져..
이전 포스팅 : http://gosmcom.tistory.com/11 #1 sizeof연산자를 통한 동적 메모리 할당! sizeof에 A를 넘겨주면 A의 크기를 반환해준다.sizeof(자료형이름) => 자료형의 크기 sizeof(변수이름) => 변수의 자료형의 크기 즉 int a 의 크기는 sizeof(int) 또는 sizeof(a)가 가능하다. 보통 전자를 많이 사용한다. 후자는 연결리스트에 필요한 동적할당에서 구조체의 크기를 구할 때의 sizeof를 빗대어 생각해보자.http://gosmcom.tistory.com/10 #2 왜 굳이 sizeof를 써서 동적 할당을 해야되는가? 이전 포스팅에서 '컴파일러에 따라 자료형 bit가 다르다'는 것을 사례로 들었다. 이번에는 실제 코드를 비교해 살펴보도록 하..
#1■fopen을 이용해 파일을 생성 할 수 있다.FILE* fopen(char *filename, char *mode); 모드는 다음과 같이 구분된다.r : 파일을 읽을 때 사용w : 파일을 쓸 때 사용. 파일이 없으면, 파일을 생성함. 파일이 있으면 파일의 내용이 없어짐a : 파일에 첨부하기 위해 사용, 파일이 없으면, 파일을 생성함, 파일이 있으면, 파일의 끝 부터 내용을 추가 #2■Write 모드fopen("data.txt", "w"); - 파일에 값을 기록할 수 있는 파일포인터 FILE* 를 얻을 수 있다 (보통 fp로 쓴다. 이전 포스팅 참고 : http://gosmcom.tistory.com/5)- 파일을 열 때, 파일이 없으면 파일을 생성하고, 파일이 있으면, 파일의 내용을 모두 지우고 기..
#1 ■파일과 관련된 함수 -열기 : fopen , fopen_s -닫기 : fclose -데이터 읽어오기 : fscanf , fscanf_s ※ _s의 사용법은 다음에 다룹시다. 파일 입출력 함수들은 stdio.h에 선언되어있다. 파일 열기에는 2가지 매개 변수가 필요하다.(파일 이름, 파일 모드) 이 중 파일모드는 읽기 용도, 쓰기 용도로 나뉘어진다.FILE* fopen(const char* filename, const char* mode); fopen(파일이름, 파일모드); #2 파일 입출력을 하려면 파일 포인터가 존재해야한다. 이 포인터로 대상 파일을 지정한다. 즉 fopen() 반환값을 파일포인터인 fp에 저장하며 실패시에는 NULL이 나온다. FILE* fp; fp = fopen(“data.t..