C - Call by value & Call by reference
2020. 5. 19. 14:05
📌 C
인자를 전달하는 방식에는 두가지가 있다. 바로 Call by value 와 Call by reference 이다. Call by value 기본적으로 C언어에서 지원하는 방식이다. 함수에서 값을 복사해서 전달하는 방식으로, 인자로 전달되는 변수를 함수의 매개변수에 복사한다. 이렇게 복사되면 인자로 전달한 변수와는 별개의 변수가 되며, 매개변수를 변경해도 원래 변수에는 영향을 미치지 않는다. 따라서 원본 값을 바꿀 필요가 없는 경우에는 call by value 방식을 이용하면 된다. Call by value 방식은 swap을 진행해도 매개변수가 바뀌지 않는다. Call by reference 함수에서 값을 전달하는 대신 주소값을 전달하는 방식을 Call by reference라고 한다. 코드를 실행해보면 ..
C - 포인터
2020. 5. 19. 11:44
📌 C
포인터란 무엇일까? "어떤 것을 가리키는 것" 이라고 유추할 수 있다. 맞다. 포인터는 "주소"를 가리킨다. 이름만 포인터라고 다를 뿐이지 int,char 같이 다를 바 없는 변수이다. 포인터 변수라고 부르기도 한다. 변수면 어떤 값을 저장하는 것일텐데, 포인터는 무엇을 저장할까? 주소값을 가리킨다고 했으니, 당연히 주소값을 저장한다. int형은 정수를, char는 문자를 저장하듯이 포인터는 변수의 주소값을 저장한다. 코드를 한번 직접 봐보자. 위와 같이 포인터 변수를 선언할 때는 담고자 하는 자료형에 *(참조 연산자)를 붙여서 선언한다. 만약 int형 변수 주소를 담고 싶으면 int*를, char형 변수의 주소를 담고싶다면 char*을 사용하는 것이다. 그렇다면 자료형에 따라 주소값의 크기도 달라지는 ..
C - if 문의 동작 방식
2020. 5. 3. 17:44
📌 C
C 언어에서 if는 0일 때 거짓, 0이 아닐 때 참으로 동작합니다. 다음 내용을 소스 코드 편집 창에 입력한 뒤 실행해보세요. #include int main() { if (2) // 0이 아니므로 참 printf("참\n"); else printf("거짓\n"); return 0; } 결과 : 참 if에 2를 넣었는데도 "참"이 출력됩니다. 즉, -4, -3, -2, -1, 1, 2, 3, 4...처럼 0이 아닌 양수와 음수를 넣으면 무조건 참입니다. 실수도 마찬가지로 0.0f는 거짓이며 0.0f가 아닌 값들은 참입니다. 각자 0이 아닌 다양한 양수와 음수를 넣어보세요. 이번에는 0을 넣어봅니다. #include int main() { if (0) // 0이므로 거짓 printf("참\n"); els..