목록2020/11 (4)
공부중
int a = 10; ++a;// 전위 증가연산자 --a;// 전위 감소연산자 a++;// 후위 증가연산자 a--;// 후위 감소연산자 전위 증가/감소 연산자는 위와같이 쓸 수 있다. 여기서 특이사항은 전위 연산자는 증가/감소 연산을 먼저 처리하는것이고 후위 연산자는 증가/감소 연산을 나중에 처리하는것이다. 여기까지는 아무런 문제가 없고 잘 사용하면 그만인데... 아래와 같은 문제를 받은적이 있었다. int a = 10; int b = 20; (++a) = 50; (b++) = 70; ++(++a); (b++)++; 증감 연산자에 뭔가 변태적까지는 아니지만 그래도 이건 좀 불편한 코드라는것은 다르지 않다. 여기서 나는 당당하게도 50 71 52 72 가 출력될줄 알았다.. 하지만 결과는 아래와 같았다. ..
Lvalue와 Rvalue라는것이 있다. 흔히들 Lvalue와 Rvalue는 Left Value와 Right Value라고 말하며 이것은 =기호를 기준으로 왼쪽과 오른쪽에 있는것을 각각 Lvalue와 Rvalue로 말한다. 하지만 위의 내용은 100% 맞다고 볼수가 없다. docs.microsoft.com/ko-kr/cpp/cpp/lvalues-and-rvalues-visual-cpp?redirectedfrom=MSDN&view=msvc-160 값 범주: Lvalues 및 Rvalue (c + +) Lvalue 및 Rvalue (C++)Lvalues and Rvalues (C++) 이 문서의 내용 --> 모든 c + + 식에는 형식이 있으며 값 범주에 속합니다.Every C++ expression has..
흔히 오른쪽에서 왼쪽으로 읽는다 이런 규칙이 있다라는것을 학부생때 들어보긴 했었는데 그렇게 많은 책을 읽어본것은 아니지만 책에서도 이러한 내용은 없었고 비슷한것은 연산자 우선순위 조립 방향?? 이정도? 그래서 찾아본 결과 모든 참고가 되었다는 링크는 캘리포니아 샌디에고 대학의 한 웹페이지로 링크가 다들 가고 있었다. cseweb.ucsd.edu/~ricko/rt_lt.rule.html 위의 내용을 그대로 해석해 보고 정리해서 이해해보려고 한다. *포인터 - 항상 왼쪽에 있다. []배열 - 항상 오른쪽에 있다. ()함수 반환 - 항상 오른쪽에 있다. 위의 규칙을 기억하자. 1. 제일 먼저 선언된 식별자 찾고 식별자(identifier, 변수명 또는 함수명)을 기준으로 시작합니다. 2. 식별자를 기준으로 오..
오늘은 const에 대해서 공부좀 해보려고한다. 매번 const에 대해서 공부하지만 머리가 안좋은 나는 매번 까먹는다. 그리고 이 블로그에 정리도 안되어있는걸보고 이번에 해봐야겠다고 생각했다. const 키워드는 객체 또는 데이터 수정을 할 수 없도록 상수화해주는 키워드이다. const int a = 100; static const int b = 200; const AAA aaa(20); 위와같이 사용이 가능하며 a와 b는 상수화가 되어서 각각 100, 200에서 변경이 불가능하다. 마지막 라인처럼 객체에 const 선언이 붙게 되면 이 객체는 const 멤버함수만 호출이 가능하다! -> 이 객체의 데이터 변경을 허용하지 않으므로 변경가능성이 없는 const 멤버함수만 호출이 가능하기 때문. 위의 내용까..