SW사관학교 정글25 [C언어와 친구들] 구조체(Struct)와 연결리스트(Linked List) wow 0. typedef 문법 - typedef는 'type define'의 줄임 표현 - 기존 자료형 이름의 길이가 긴 경우 자료형을 재정의하여 사용하는 문법 - #define 과 비슷해 보이지만 다른 기능 - 배열, 포인터와 같은 형식도 재정의 가능 typedef int MY_DATA[5]; MY_DATA temp; // int temp[5]; 라고 선언한 것과 같음 int (*p)[5]; // 20바이트의 사용 범위를 가지는 포인터 변수 typedef int MY_DATA[5]; MY_DATA *p; // int (*p)[5]; 라고 선언한 것과 같음 1. 구조체(Struct) - 사용자 정의 자료형 정의 방법 중 한 가지 - C언어는 크기나 형식이 다른 데이터를 그룹으로 묶어 사용할 수 있도록 '구조체.. 2022. 10. 24. [C언어와 친구들] C언어의 *포인트는 포인터 1. 포인터 - 포인터란 특정한 데이터가 저장된 주소값을 보관하는 변수 - 즉, 포인터도 변수다! - 메모리 상에 위치한 특정한 데이터의 (시작)주소값을 보관하는 변수 - 포인터 역시 변수이기에 다른 변수와 마찬가지로 형(type)을 가짐 - 즉, int형 데이터 주소값을 저장하는 포인터와 char형 데이터 주소값을 저장하는 포인터가 서로 다른다. 예를 들어, p라는 포인터가 int 데이터를 가리키고 싶다고 하면 다음과 같이 사용하면 된다. // (포인터에 주소값이 저장되는 데이터의 형)* (포인터의 이름); int* p;// 라고 하거나 // (포인터에 주소값이 저장되는 데이터의 형) *(포인터의 이름); int *p;// 로 하면 된다. 이러면 위의 포인터 p는 int형 데이터의 주소값을 저장하는 변.. 2022. 10. 24. [C언어와 친구들] 배열 .. 너 .. 포인터랑 뭐 있어? 배열은 C언어가 제공하는 가장 기본적인 자료구조이면서, 몇 없는 ... 그냥 다(?) 없는 C언어의 자료구조 중 하나이다. 배열이란, 컴퓨터 메모리 상에 같은 타입의 변수를 연속적으로 여러 개를 한꺼번에 정의할 수 있는 방법이다. 배열의 장점은 크게 두 가지가 있다. 1) 공간 효율이 좋다. 구조가 단순하기 때문에 정보 자체를 기억하는 메모리 외에 추가로 소모하는 메모리가 전혀 없이 공간효율이 좋다. 정수형 변수 100개를 저장하는 int arr[100] 배열은 정확하게 정수 100개분만큼의 메모리만을 요구한다. 2) 검색 속도가 일정하다. 배열의 크기가 아무리 커지더라도 검색 속도가 일정한다. 배열의 첨자 연산은 포인터를 통해 시작 번지에 첨자 *요소 크기를 더하는 간단한 동작이므로 임의의 한 요소를 .. 2022. 10. 22. [C언어와 친구들] C언어를 알아볼까 ? 하잇 ~! 1. include와 헤더파일 - 헤더파일이란? C언어의 문법을 가지고 있는 프로그램. - 헤더파일이 코드에 추가되어 있지 않다면, 컴퓨터는 아무것도 하지 못한다. 1-1) #include 이 한 줄의 문장은 'stdio.h'안에 정의되어 있는 많은 함수들을 내 코드안에 포함시켜서 프로그램으로 만들겠다.는 의미 - stdio: standard input output의 약자 (studio가 아니다 🤗) - h: 파일의 확장자, header를 나타냄 1-2) #include - 문자열 변환, 의사 난수 생성, 동적 메모리 관리 등의 함수들을 포함 - 동적 메모리 할당 함수인 mallo, calloc 함수도 이 헤더에 포함되어 있으며, 시스템 명령어나 프로세스 제어함수도 포함 #include // stdio... 2022. 10. 21. [WEEK03] 개발일지 (부제: set💖과 소소한 행복 찾기) ※ 개발일지가 아니라 일기일 수도 있는 점 양해바랍니다. 오전, 오후, 새벽이 모두 담겨있어요.※ ※ WEEK 시작인 매주 목요일에 업데이트 됩니다. 많.관.부 ※ DAY01 22.10.06 (목) from Jungle import Knowledge 벌써(?) 3주차이다. 사실 일주일 됐을 때 2주를 체감했고, 2주가 됐을 때 4주를 체감했는데 돌이켜보니 일단 했다. 이번 시험은 B반이 먼저 시험을 봤고, 문제는 쿼드트리, PPAP, 소수곱이 나왔다. 저번 주에 색종이 만들기를 공부하면서 힌트에 '쿼드트리를 만드는 문제'라고 해서 '쿼드트리가 뭐냐!!' 하면서 혼자 공부를 했었는데 문제에 나와서 반가웠다. 하지만, 공부를 하지 않았다면 과연 풀 수 있었던 문제일까 생각해보면 잘 모르겠다.. 아직 재귀에 .. 2022. 10. 13. [WEEK01] 개발일지 (부제: 알고리즘 start) ※ 개발일지가 아니라 일기일 수도 있는 점 양해바랍니다. 오전, 오후, 새벽이 모두 담겨있어요.※ ※ WEEK 시작인 매주 목요일에 업데이트 됩니다. 많.관.부 ※ DAY01 22.09.22 (목) WEEK00의 끝과 새로운 시작 GJ님과 SW님의 도움과 헌신 아래 3일만에 프로젝트 하나를 완성했다. 그래도 힘들게 했던 프로젝트이기에 리드미를 작성했다. WEEK00을 무사히 끝마치고 WEEK01 발제를 한 뒤 예상에도 없던 회식을 하였다. 코치님, 대표님, 의장님과 술을 한 잔을 하고, (한 잔이 아니였..) 얼른 동기들끼리 친해져서 모르는 것도 빨리빨리 물어보라는 명확한 의도의 술자리였다. 정말 덕분에 거의 대부분의 동기들과 안면과 말(?)을 텄고, 친해질 수 있었다. DAY02 22.09.23 (금).. 2022. 9. 29. [WEEK01] 특별한 과제 (부제: 찬찬히 나를 돌아보는 시간) 정신없이 정글 WEEK00가 끝나고 새로운 WEEK01가 시작되었고, 특별한 과제가 주어졌다. 지나온 과거에 대한 성찰 난 유난히도 걱정이 많았고, 생각이 많았다. 학점을 위해, 나의 경험을 위해 쌓아온 대학교 3년의 시간이 어느 날 갑자기 아무것도 아닌 것 같은 느낌이 들었다. 모든게 상대적이라고 누군가에게는 얻고 싶은, 경험하고 싶은 기회들이 있었을 것이다. 하지만, 또 상대적으로 내가 생각하는 대단한 사람들에 비하면 난 아무것도 아니었다. 꽤나 부정적이었고, 앞으로 어떻게 해야할지에 대한 고민들로만 쌓여갔다. 더이상 이렇게는 안 되겠다는 생각에 일단 해보기로 하였다. 무엇이든! 새해가 밝았고 내가 이뤄내고 싶은 모든 일들을 세부 분야로 나누어 작성하였다. 소위 말하는 버킷리스트를 작성한 것이다. 날.. 2022. 9. 24. 이전 1 2 3 다음