본문 바로가기

C12

[C/C++] unsigned char 타입에 음수를 넣은 값이 signed short, int로 형변환 하면 이상한 값으로 변하는 이유 혹시, 프로그래밍을 하다가 분명히 unsigned char 타입에 음수를 넣었는 데, signed short이나 int로 형변환하니 이상한 값으로 변하는 경우를 경험하신 적이 있으신가요? 혹은 signed에서 unsigned로 넣었을 경우는 있으신가요? 이미 경험이 있으시다면 그 이유도 아시고, 이후 프로그래밍에서는 조심하려고 하실 것으로 생각합니다. 이 문제는 프로그램이 복잡하다면, 생각보다 찾기 힘들 수도 있기 때문에 코드를 짤 때 주의해야 하는 부분이라고 생각합니다. 그래서 이번 포스팅으로 정리해놓으려고 합니다. 또한, 이게 무슨 문제를 일으킬 지 모르시는 분들을 위해서도 글을 씁니다. 그럼, 바로 설명으로 들어가도록 하겠습니다. 들어가기 전에.. 포스팅을 위해 작성한 예제에 대해서 간단하게 typ.. 2019. 7. 6.
[C || CPP] C++ 배열 초기화 하는 방법 (fill_n) 알고리즘 문제를 풀거나, 프로그래밍을 하다보면 배열을 사용하는 경우가 많을 것이다.배열을 사용하면, 당연히 초기화를 해야할 것이다. 이때, 배열을 초기화하는 방법이 C과 C++이 약간은 다르다고 할 수 있다. (혹시, 내용이 잘못되었다면 댓글 부탁 드립니다.) 간단하게, 정수형 배열을 C와 C++에서 어떻게 다른 지 예제로 확인해보자. 먼저, 간단한 배열이라면 아래처럼 초기화할 수 있다.1int arr[10] = {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1};cs 위의 경우는 정말 간단한 배열일 때나 가능할 것이다. 언제 초기화 할지..물론, for문으로 반복해서 초기화 하는 방법도 있겠지만, 더욱 간단한 방법을 찾아보자. 먼저, GCC를 사용할 때는 다음과 같은 방법을 사용할.. 2018. 10. 14.
[C || C++] 입력 받은 대로 출력하는 방법 (BAEKJOON 11718번 문제) 알고리즘 문제를 풀다보면 한 줄의 문자열을 모두 입력받아야 하는 경우가 있다. 이번에 백준 사이트에서 문제를 풀다보니, 관련 문제가 있어서 문제도 풀겸 정리도 하려고 한다. 물론, 문제 내용은 간단하지만, 막상 필요할 때는 생각이 나지 않을 수 있으므로, 알고리즘 테스트나 문제를 풀기 전에 미리 숙지하면 좋지 않을까라는 생각이 드는 내용이다. 1. C 에서 개행 문자 입력까지 문자열 입력 받는 방법. 먼저, C에서는 아래와 같은 방법으로 개행이 있을 때까지 입력 받은 문자열을 저장할 수 있다. 1scanf("%[^\n]s", str);cs 설명 >> [ ]은 scanset character라고 한다. scanset 에 대한 자세한 내용은 다른 포스팅에서 다루기로 하고.. 여기서 사용된 [^\n]은 입력 .. 2018. 10. 14.
[C & C++] if 앞 조건문이 false 경우, 뒷 조건문은 실행할까? c 나 cpp 또는 여러 가지 언어로 프로그래밍을 하면서 궁금해볼만한 것을 정리하려고 한다. 이번에 정리할 내용은 간단해서 많은 사람들이 알 수 있지만, 모르는 사람을 위해서 정리한다. 프로그래밍 언어에서 조건문은 굉장히 쉬운 문법 중 하나이다. 그 중, if 문은 입문자도 어렵게 생각하지 않을만한 문법이다. 이러한 if문은 여러 가지 조건을 조합하여 사용할 수 있다. 예를 들면 다음과 같다.1if ( 저녁 밥을 먹었다. && 손을 씻었다. || 과제를 했다.)cs && 또는 || 그 외 등등의 조합으로 하나의 if문을 완성할 수 있다. 그런데, 이러한 조건들은 무조건 모두 실행하는 것일까? 궁금하다면 다음을 보자. 간단하게 실험을 해보았다. ( 시간 측정으로 확인을 해보자.) 12345678910111.. 2017. 11. 24.