일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 백준
- 포인터
- Programming
- 리뷰
- 배열
- Kotlin
- Windows
- 알고리즘
- 티스토리
- 지식나눔강좌
- c
- CS
- c++
- 김성엽
- Win32
- VS ERROR
- c#
- 프로그래밍
- 문법
- Tips강좌
- Direct2D
- Tips프로그래밍강좌
- Visual Studio
- doit코틀린프로그래밍
- tipssoft
- 이지스퍼블리싱
- Javascript
- 함수
- Desktop
- 연산자
- Yesterday
- Today
- Total
목록문법 (13)
F.R.I.D.A.Y.
C언어의 반복문에 대해 알아봅니다. 일반적인 코드 작성 1부터 10까지 차근차근 더하는 코드를 작성해보겠습니다. #include int main(void){ int total = 0; total += 1; total += 2; total += 3; total += 4; total += 5; total += 6; total += 7; total += 8; total += 9; total += 10; printf("1부터 10의 합은 %d 입니다.\n", total); } 고작 더하는 값에 열 줄을 작성했습니다. 만일 더해야 하는 범위가 10까지가 아니라 100, 아니 그보다 더 큰 수라면 어떻게 하시겠어요? 이렇게 반복적으로 작업을 해야 하는 것은 많습니다. 그래서 반복문이 생겨났습니다. 반복문 이름 그대..
함수 포인터 또한 자료형입니다. 모든 자료형은 배열로 만들 수 있다고 했는데요, 이번에는 함수 포인터 배열을 만들어봅니다. # 배열, 함수 포인터를 먼저 알고 있어야 합니다. 선언 방법 먼저 배열의 선언 방법을 되돌아봅니다. type arrayName[length]; // ex) int arr[10]; 함수 포인터의 선언 방법은 다음과 같습니다. returnType (*var)(parameters); // ex) int (*user_abs)(int); returnType: 함수 포인터로 가리킬 함수의 반환형 parameters: 함수 포인터로 가리킬 함수의 인자 만일 printf를 가리킬 수 있는 함수 포인터 배열을 선언하고자 한다면 아래와 같이 작성하면 됩니다. int (*fp)(const char *..
포인터는 신기하게도 함수까지 가리킬 수 있습니다. 어차피 이름이 있으니 이름으로 사용하면 될 텐데 뭐가 좋으냐는 생각을 할 수 있겠지만 이번에 그 생각이 바뀌실 겁니다. # 포인터에 대한 내용을 알고 있어야 합니다. 정적인 것은 싫어요 무엇이든 코드에 명시되어 있다면 이를 수정하기 위해서는 전부 다시 컴파일을 진행해야 합니다. 그러나 포인터를 이용한다면 포인터만 명시되어있지 포인터가 가리키는 내용은 코드에 명시하지 않도록 할 수 있습니다. 따라서 포인터를 사용하면 컴파일을 하지 않고도 실제 작업 내용의 변경이 가능[# 게임을 예로 들면 사소한 버그는 패치로 바로잡곤 합니다. 그런 것이라고 보면 됩니다.]합니다. 함수도 마찬가지입니다. 함수 포인터 함수 포인터는 말 그대로 함수를 가리킬 수 있는 포인터입니..
하나의 공간을 여러 용도로 사용하는 경우가 있습니다. C언어에도 그러한 공간을 만들 수 있도록 문법을 제공하고 있는데요. 오늘 시간에는 공용체(union, 유니온) 문법에 대해 알아봅니다. # 구조체를 먼저 배우고 오면 더욱 좋습니다. 공유하는 공간 회의장이 있다고 생각해봅시다. 이 회의장은 넓어서 행사를 개최할 때도 사용하고 여러 사람들이 모여 아이디어를 펼치는 아이디어룸으로 사용할 수도 있습니다. 어떤 시안에 대해 회의를 할 때도 사용하기도 하죠. 학교에선 다목적 강당으로 생각해도 좋을 것 같습니다. 이 회의장을 하나의 용도로만 사용해야 한다면 다른 용도를 위한 공간을 계속해서 만들어야 하니 비용이 많이 들 것입니다. 공용체(union) 선언하기 공용체 문법은 아래와 같이 기본 구성을 가지고 있습니다..
모든 자료형은 배열로 만들 수 있습니다. 그리고 동시에 포인터로 가리킬 수 있죠. 이번 시간에는 자주 헷갈리는 문법, 포인터 배열과 배열 포인터를 알아봅니다. 배열 배열 속에 들어있는 각 요소의 자료형은 배열 선언 당시 변수 이름 앞의 자료형입니다. int arr1[10]; char arr2[10]; float arr3[10]; struct data1 arr4[10]; union data2 arr5[10]; 각 배열은 [int, char, float, struct data1, union data2] 타입을 필두로 선언되었습니다. 그럼 포인터를 자료형으로 하는 배열은 어떻게 만들어야 할까요? 헷갈리는 표현 자, 배열 포인터와 포인터 배열이 있습니다. 다음 코드 중 어느 것이 배열 포인터이고 어느 것이 포인..
Prev. 배열(array) part1. default 이전 포스트[# 한참 지난 포스트이긴 하지만..\n 한참 시간이 지난 포스트다 보니 설명하는 어투가 다릅니다. 대표적으로 존댓말로 바뀌었다던지.. 아마도 조만간 개편을 진행해야겠군요.]에서 우리는 자료형과.. pang2h.tistory.com 배열의 심화 학습이라고 생각할 수 있는 포스트입니다. 이전 시간에는 배열의 기본적인 사용법을 알아보았다면 이번 시간에는 다차원 배열에 대해 알아봅니다. 차원 먼저 작성되었던 포인터에서도 언급이 되었던 차원 개념입니다. 우리 세계는 3차원 공간에 1차원의 시간이 더해진[# 뭐 더 나아가면 더 많은 차원이 존재한다는 말도 있지만] 시공간이라고 말합니다. 우리가 점을 표현할 때는 몇 차원이 필요할까요? 차원이 필요하..
이전 포스트[# 한참 지난 포스트이긴 하지만..\n 한참 시간이 지난 포스트다 보니 설명하는 어투가 다릅니다. 대표적으로 존댓말로 바뀌었다던지.. 아마도 조만간 개편을 진행해야겠군요.]에서 우리는 자료형과 변수에 대해 공부했습니다. 이번 포스트에서는 배열에 대해 공부해봅니다. 변수 선언하기 이전 시간에 공부했던 내용입니다. 변수 하나에 값 하나. 달리 이야기하면 여러 개의 값을 저장하고 싶다면 그 개수만큼의 변수가 필요하다는 말이 되겠죠. 어떤 학급에 30명의 학생이 있다고 생각해봅시다. 이 학생들의 고유 번호를 저장할 변수가 필요합니다. 그렇다면 30명의 정보를 저장할 30개의 변수가 필요하겠군요. int student1, student2, student3, student4, student5, stud..
지난 시간에 우리는 포인터의 기본적인 내용을 배웠습니다. 포인터(pointer) 잘 배워가던 사람들도 멈추는, 일명 C언어에서 첫 번째 고비라 일컬어지는 포인터입니다. 하다 보면 쉽지만 막상 처음 하면 난생처음 보는 문법에 쓰는 방법도 독특한지라 많이들 힘들어합니다. # 선행으로 함수.. pang2h.tistory.com 이젠 포인터의 한 단계 더 높은, 다차원[# 지난 시간에도 말씀드렸지만 원서의 포인터 파트에서는 차원(dimension)이라는 표현은 없습니다. 역자들이 번역해올 때 정확한 명칭을 정하지 못해 배열의 차원이라는 단어를 가져온 것입니다. 이번 포스트에서는 차원이란 단어로 소개했으므로 차원으로 통일하겠습니다.\n용어를 올바르게 바꾸고자 노력하는 분이 계시니 만일 더 나은 단어나 반대 의견이..
잘 배워가던 사람들도 멈추는, 일명 C언어에서 첫 번째 고비라 일컬어지는 포인터입니다. 하다 보면 쉽지만 막상 처음 하면 난생처음 보는 문법에 쓰는 방법도 독특한지라 많이들 힘들어합니다. # 선행으로 함수를 알아야 합니다. 사용자로부터 입력받기 우리가 사용자로부터 값을 입력받을 때, 표준 입출력 함수를 사용하곤 합니다. 대표적으로 scanf[# scanf_s 또한 표준입니다. scanf_s에 대한 자세한 내용은 https://pang2h.tistory.com/200을 참고하세요.]가 존재하겠네요. #include int main(void){ int num; scanf("%d", &num); printf("%d\n", num); return 0; } 그렇다면 우리도 scanf 함수처럼 값을 입력받도록 해보..
C언어에는 typedef라 불리는 기존 자료형을 다시 정의하는 키워드가 존재합니다. 이 포스트에서는 이 typedef에 대해 알아봅니다. 나도 별명을 가지고 싶다 변수는 다양한 이름으로 선언해서 프로그램의 핵심 중추로 작용합니다. 그때, 자료형들이 시샘이 났습니다. 그래서 데니스 리치[# C언어의 창시자입니다. 자세한 내용은 링크를 참고하세요.]는 불만을 해소해주고자 만든 키워드가 typedef라고 보시면 좋겠습니다. int var1; char var2; double real1; 변수를 선언하는 방법입니다. typedef 또한 마찬가지로 작성할 수 있습니다. typedef int integer; 이렇게 작성하면 int의 별명으로서 integer라는 자료형이 새롭게 구현[# 물론 기반은 int이지만]됩니다..