2015년 1월 9일 금요일

참조 전달인자는 언제 사용하는가?

참조 전달인자를 사용하는 주된 이유 두가지:

  • 호출 함수에 있는 데이터 객체의 변경을 허용하기 위해
  • 전체 데이터 객체 대신에 참조를 전달하여 프로그램의 속도를 높이기 위해





함수가 전달된 데이터를 변경하지 않고 사용만 하는 경우:

  • 데이터 객체가 기본 데이터형이나 작은 구조체라면 값으로 전달한다.
  • 데이터 객체가 배열이라면 포인터가 유일한 선택이므로 포인터를 사용한다. 포인터를 const를 지시하는 포인터로 만든다.
  • 데이터 객체가 덩치 큰 구조체라면 const 포인터나 const 참조를 사용하여 프로그램의 속도를 높인다.
  • 데이터 객체가 클래스 객체라면 const 참조를 사용한다.

함수가 호출 함수의 데이터를 변경하는 경우:

  • 데이터 객체가 기본 데이터형이면 포인터를 사용한다.
  • 데이터 객체가 배열이면 유일한 선택은 포인터를 사용하는 것이다.
  • 데이터 객체가 구조체이면 참조 또는 포인터를 사용한다.
  • 데이터 객체가 클래스 객체이면 참조를 사용한다.



2014년 12월 16일 화요일

break와 continue 명령문




break와 continue 명령문은 프로그램이 코드의 일부를 무시하고 건너뛰게 만든다.

break : switch 명령문과, 모든 종류의 루프에 사용할수 있다.
continue : 루프에만 사용할 수 있다.

break : switch나 루프 바로 뒤에 오는 명령문을 실행하도록 한다.
continue : 루프 몸체의 나머지를 무시하고, 새로운 루프 주기를 시작하게 한다.


cctype 문자함수






  1. isalnum() : 전달인자가 영숫자, 즉 알파벳 문자이거나 숫자이면 true
  2. isalpha() : 전달인자가 알파벳 문자이면 true
  3. isblank() : 전달인자가 빈칸 문자 또는 수평 탭 문자이면 true
  4. iscntrl() : 전달인자가 제어 문자이면 true
  5. isdigit() : 전달인자가 십진 숫자이면(0~9) true
  6. isgraph() : 전달인자가 빈칸이 아닌 인쇄할 수 있는 문자이면 true
  7. islower() : 전달인자가 소문자이면 true
  8. isprint() : 전달인자가 빈칸을 포함하여 인쇄할 수 있는 문자이면 true
  9. ispunct() : 전달인자가 구두점 문자이면 true
  10. isspace() : 전달인자가 표준 화이트스페이스, 즉 빈칸(a space), 용지 이송(formfeed), 개행(newline), 캐리지 리턴(carriage return), 수평 탭(horizontal tab), 수직 탭(vertical tab)문자이면 true
  11. isupper() : 전달인자가 대문자이면 true
  12. isxdigit() : 전달인자가 16진 숫자(0~9, a~f 또는 A~F)이면 true
  13. tolower() : 전달인자가 대문자이면 소문자로 바꾸어 리턴한다. 그렇지 않으면 전달인자를 변경하지 않고 그대로 리턴한다.
  14. toupper() : 전달인자가 소문자이면 대문자로 바꾸어 리턴한다. 그렇지 않으면 전달인자를 변경하지 않고 그대로 리턴한다.