일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 문법
- Direct2D
- Windows
- 연산자
- 티스토리
- Desktop
- 백준
- doit코틀린프로그래밍
- CS
- 프로그래밍
- Tips프로그래밍강좌
- 함수
- Kotlin
- tipssoft
- Visual Studio
- Win32
- 리뷰
- 포인터
- 배열
- c++
- 지식나눔강좌
- Tips강좌
- c#
- c
- 알고리즘
- VS ERROR
- Javascript
- 이지스퍼블리싱
- 김성엽
- Yesterday
- Today
- Total
목록인자 (5)
F.R.I.D.A.Y.
이전 시간에 우리는 고차 함수에 대해 배웠습니다. 함수를 인자로 넘기는 방법도 배웠죠. 그런데 이전 시간의 범위에는 포함되지만, 조금 더 많은 이야기를 위해 따로 빼놓은 것이 있습니다. 바로 람다식(Lambda Expression)입니다. 이번 시간에는 이 람다식에 대해 배워보겠습니다. 함수를 인자로 넘기기 이전 시간에 함수를 인자로 넘기는 방법에 대해 배웠습니다. 그때 어떻게 사용하던가요? fun sum(a:Int, b:Int){ println("입력 두 값의 합은 ${a + b}") } fun TestFunc(vSum:(Int, Int)->Unit){ vSum(5, 4) } fun main(args:Array){ TestFunc(::sum) } 인자로 들어가는 함수 앞에 함수 참조 기호(::)를 입력..
이전 시간에 우리는 언어의 패러다임을 배웠습니다. 그 내용에는 일급 객체에 대한 내용도 함께 실려 있는데요, 이번 시간에는 일급 객체, 특히나 고차 함수에 대해 알아보겠습니다. 고차 함수 먼저 고차 함수가 무엇인지 알아보겠습니다. 고차 함수는 "함수를 인자로 사용하거나, 함수를 반환하는 함수"입니다. 달리 이야기하면, 일급 객체(일급 함수)를 서로 주고받을 수 있는 함수가 있다면 그 함수가 고차 함수가 되는 것입니다. fun main(args:Array){ TestFunc() } fun TestFunc(): Int{ return sum(2, 4) } fun sum(a:Int, b:Int) = a + b 이 코드에서는 TestFunc()가 고차 함수의 조건을 만족하고 있습니다. 함수를 인자로 활용하지는 않..
이번 시간에는 함수에 인자를 넘길 때 넘기는 방식에 대해 이야기해봅니다. 시작에 앞서 이번 포스트에서는 아래 코드를 이용해 예시를 들도록 하겠습니다. #include void printA(int a){ printf("%d\n", a); } void printAbsA(int a){ printf("%d\n", a > 0 ? a : -a); } int main(void){ int a; scanf("%d", &a); printA(a); printAbsA(a); return 0; } 값을 복사해서 넘기기 : CallByValue 대표적으로 C언어가 추구하는 방식입니다. 한국어로는 값에 의한 전달 모든 파라미터는 값의 복사. 즉, 다른 공간에 같은 값을 생성해 전달합니다. 일단 전달이 이루어지면 전달하는 데이터의 ..
malloc VS calloc 동적할당은 프로그램에 조금만 규모가 생기면 잘 사용하게 되는 기술로 C언어에서는 함수를 이용해 동적할당을 받는데요, 동적할당을 하는 함수로는 대표적으로 아래와 같은 것들이 있습니다. malloc calloc real.. pang2h.tistory.com 위 포스트에 댓글로 들어온 질문입니다. malloc 함수를 사용할 때와 달리 왜 calloc 함수는 두 개의 인자를 받아야 할까요? calloc() 이전 포스트에서도 말한 것과 같이 calloc 함수는 malloc 함수로 받은 메모리 공간을 0으로 초기화하여 메모리 시작 주소를 반환하는 함수입니다. 인자 두 개가 필요한 것은 메모리 공간을 0으로 초기화할 때 필요합니다. 다음 코드를 보겠습니다. #include int mai..
연산자 중에 단항 연산자(++, -- 등)는 일반 사칙 연산자에 비해 속도가 빠른 편입니다. 물론 컴파일러에 따라 속도 문제가 해결이 되긴 하지만 기본은 단항 연산자가 더 빠릅니다. 편하기도 합니다. 그래서 자주 사용하지만, 조심해야 하는 위치가 있습니다. 오늘은 단항 연산자의 사용을 지양해야 하는 위치를 알아봅니다. ※ Visual Studio 2019 Community v16.1.3. 기준으로 작성되었습니다. 단항 연산자 특성 일단 단항 연산자의 특성을 알아봅시다. 단항 연산자는 기본적으로 연산의 결과가 피연산자의 값에 영향을 주므로 실제 피연산자의 값이 변경되는 위치에 사용되어선 안됩니다. 대표적으로 문자열을 저장하는 포인터에 단항 연산자 사용은 위험한 행동입니다. 다음 코드를 보겠습니다. #inc..