일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- index
- 말 더듬
- oracle
- 슬픔의 후에
- nginx
- 데이터베이스
- DBMS 구성요소
- 악보
- DBMS
- 핑거스타일
- I'm fine thank you
- IT
- 신입
- 천공의 시간
- 레이디스코드
- 스위트라떼
- 러블리즈
- Inside Of Me
- 아이유
- 기타
- 오라클 아키텍처
- 6학년 8반 1분단
- 오라클
- SQL 처리
- 봄 사랑 벚꽃 말고
- db
- 니가 참 좋아
- 장범준
- 개발자
- 인덱스
취미로 음악을 하는 개발자
[C++] 스타일 함수, 문법 본문
1. 변수 선언
C++에서는 초기화를 할 때 아래처럼 나타낼 수 있다고 한다.
주의할 점은 int a(10)에서 앞에 int 처럼 타입을 정해주지않으면 함수와 헷깔리게 생각할 수 있으므로 타입을 잘 정해줘야하는 것 같다.
레퍼런스 변수는 실제 메모리 상에 존재하는 주소를 가리키는 변수인데 선언되지 않은 것을 가리킬 수 없다.
아래에서 다시 한번 언급하겠지만 이 때, b는 L-value라고도 한다.
ex) 계산식, 숫자나 문자 등
2. -value, r-value
이 부분에 대해서는 처음 들을 때도 이해가 안됐고 지금도 다 이해가 되지는 않지만
https://bunhere.tistory.com/409 이쪽 링크를 참조하면서 천천히 이해해보고 있습니다.
위와 같은 식이 있을 때, a는 L-value, 10은 R-value라고 한다. 물론 좌항은 L-value, 우항은 R-value라는 것은 아니다. ex) a = b일 때 둘다 L-value다.
따라서 L-value의 정확한 의미는 '수정할 수 있는 값', R-value는 '수정할 수 없는 값'이라고 정의가 된다.
여기서 나는 R-value의 정의와 const의 차이가 궁금했다. const는 상수값으로 만들어주는 키워드이다. '수정할 수 없는 값' 과 '상수 값'.. 다른건가?
그래서 찾은 사이트가 https://modoocode.com/189 이곳이었다.
L-value를 안다면 R-value는 L-value가 아닌 값들이다. 대표적인 것이 수식인데 이렇게 생각하니까 더 빨리 이해가 되었다.
const는 변수를 수정할 수 없게 상수로 선언하게 해준다. R-value는 '2*a' 같은 수식인데 const를 선언하게 되면 그 수식 값으로 선언된 값을
변경할 수 없게 만들어 주는 것이었다.
L-value, R-value에 대해서는 추후에 따로 정리해보면서 글을 올릴 것이다.
3. 범위 기반 for문
나는 평소에 Java를 쓰다가 최근에 C++을 배우게 되었다. 이 부분에 대해 배울 때는 Java의 For-each 문을 사용했던 게 떠올랐다.
보통 배열을 만들고 값을 출력한다고 한다면 이런 형식일 것이다.
하지만 우리는 배열을 대상으로 할 때 좀 더 단순할 수 있는 방법이 있다.
(int n : arr) 이 부분에서 변수 n은 arr 배열에 있는 원소를 가리키는데 index가 0인 것부터 끝까지 하나씩 가리킨다. (다른 조건이 없다고 가정)
당연 이 때의 반복횟수는 arr의 원소 개수만큼일 것이고 그 횟수만큼 for문 안에 있는 명령어들이 실행될 것이다.
프로그래밍을 배운지는 어느덧 6년차이고 C++을 알게된 것은 5년차지만 쓸 일이 없다고 생각해서 평소에 쓰던 Java만 썼었다.
군대도 다녀오고 나름 프로그래밍도 재밌어서 간간히 Java로 문제도 풀곤 했는데 이게 맞는건가 저게 맞는건가 고민하다가 2~3년이 흘러갔다.
지금은 이전과 다른 목표가 생겼고 그 목표에는 C++이 필요하기때문에 하루에 하나라도 알아가면서 또 이 블로그도 운영해가본다는 생각으로
배우고 적어도 이번 학기 끝나고나서는 어떤 작품 하나가 만들어보고 싶다.
'공대인 > C[++]' 카테고리의 다른 글
[C++] 객체 생성과 소멸 (0) | 2019.05.05 |
---|---|
[C++] 클래스 (0) | 2019.04.23 |
[C++] Namespace (0) | 2019.04.12 |
[C++] 스타일 함수 심화 (0) | 2019.04.11 |
개념 및 링크, 나중에 정리해서 글 써보기 (0) | 2019.04.07 |