목록문법 (4)
삶의 공유
오늘은 C++11 에서 부터 추가된 Null Ptr(널 포인터) 에 대해 살펴 보겠다. nullptr 먼저 아래의 코드를 보자 위의 2줄은 ok이지만, 마지막 2줄에서는 error가 발생 한다. 왜 일까? #include int main(int argc, const char * argv[]) { // insert code here... int n1 = 0; // 1. ok int* p1 = 0; // 2. ok int* p2 = 10; // 3. error int* p3 = n1; // 4. error } 먼저 int n1 = 0; 구문에서 이 '0'에 대해서 생각 해보자. 이 '0'은 바로 정수(int)형 literal 이다. 즉 포인터 변수 초기화에 사용이 될 수 있다. (포인터로 암시적 형 변환) ..
전 포스팅에 이어서 Reference의 활용으로 Const, Return, Rvalue에 대해서 알아보자. Const Reference 아래와 같은 예시가 있다고 생각해보자, #include struct Rect { int left; int top; int right; int bottom; }; void foo(Rect r) { } int main(int argc, const char * argv[]) { // insert code here... Rect rc = {1,1,5,5}; foo(rc); } 여기서 foo 함수에 Rect 타입 변수 rc를 전달하는데 "foo 함수 안에서는 rc의 상태는 변경되면 안된다." 라는 규칙이 적용이 되면 우리는 Call by value로 전달하면 된다. Call by..
오늘은 표준 입출력에 이어서 Reference에 대해 공부해보자. 레퍼런스 (Reference, 참조) 란? 이미 존재하는 변수(메모리)에 대한 추가적인 별칭(alias)를 부여 하는 문법 예시는 다음과 같다. #include int main(int argc, const char * argv[]) { // insert code here... int n = 10; int*p = &n; int&r = n; r = 20; std::cout
C 언어와 C++ 언어의 표준 입출력의 차이점에 대해서 알아보자 먼저 아래 구문을 통해 C언어 스타일의 입출력 표기 하는 방법과 C++ 언어의 입출력 표기하는 방법을 비교해보려고 한다 먼저 각 언어 스타일마다 표기법을 살펴보자 [C언어 Style] #include int main(int argc, const char * argv[]) { int n = 10; double d = 3.4; printf("%d, %f\n", n, d); scanf("%d", &n); } [C++ 언어 Style] #include int main(int argc, const char * argv[]) { // insert code here... int n = 10; double d = 3.4; std::cout