C++프로 그래 밍 에서 연산 자의 사용 을 자세히 설명 합 니 다.

4152 단어 C++연산 자
C++의 연산 자 는 매우 풍부 하여 C++의 연산 을 매우 유연 하고 편리 하 게 한다.예 를 들 어 할당 번호(=)도 연산 자로 처리 합 니 다.그러면 a=b=c=4 는 합 법 적 인 표현 식 입 니 다.이것 은 다른 언어 와 다 릅 니 다.C++는 다음 연산 자 를 제공 합 니 다:
산술 연산 자
+(더하기)  -(덜다  *(타다  /(나 누 기  %(나 누 기  ++(더 하 다  --(자감
관계 연산 자
>(이상)  <(작 음   ==(같다  >=(크 거나 같 음)  <=(작 거나 같 음)  !=(다 름
논리 연산 자
&&(논리 와)  ||(논리   !(논리 비)
비트 연산 자
<<(위치 왼쪽으로 이동)  >>(자리 오른쪽으로 이동)  &(자리 순  |(자리   ^(비트 레이트  ~(비트 백
할당 연산 자(=및 그 확장 할당 연산 자)
조건 연산 자(?:)
쉼표 연산 자(,)
포인터 연산 자(*)
연산 자 와 주소 연산 자 참조(&)
바이트 연산 자 구하 기(size of)
강제 형식 변환 연산 자(형식)또는 형식())
구성원 연산 자(.)
멤버 를 가리 키 는 연산 자(->)
다음 연산 자([])
기타(예:함수 호출 연산 자()
기본 연산 자
이 장 에 서 는 산술 연산 자 와 산술 표현 식,할당 연산 자 와 할당 표현 식,쉼표 연산 자 와 쉼표 표현 식 을 소개 하 며,기타 연산 자 는 앞으로 각 장 에서 계속 소개 할 것 이다.

두 정 수 를 나 눈 결 과 는 정수 이 고,예 를 들 어 5/3 의 결과 치 는 1 이 며,소수 부분 을 버 리 는 것 은 설명 이 필요 하 다.그러나 제수 나 피제수 중 하나 가 마이너스 라면 반올림 하 는 방향 은 고정 되 지 않 는 다.예 를 들 어-5/3 은 어떤 C++시스템 에서 결 과 를 얻 었 고,어떤 C++시스템 은 결 과 를 내 놓 았 다-2.대부분의 컴 파일 시스템 은'0 으로 정 리 를 하 는'방법 을 취한 다.즉,5/3 의 값 은 1 과 같 고-5/3 의 값 은-1 과 같 으 며 정 리 를 한 후에 0 으로 접근한다.
하면,만약,만약...  -,  *, / 연산 의 두 수 중 하 나 는 float 형 데이터 이 고 연산 의 결 과 는 double 형 입 니 다.C++연산 할 때 모든 float 형 데 이 터 를 double 형 데이터 로 처리 하기 때 문 입 니 다.
산술 식 과 연산 자의 우선 순위 와 결합 성
연산 대상(연산 수 라 고도 함)을 산술 연산 자 와 괄호 로 연결 하 는 C+문법 규칙 에 맞 는 식 을 C+산술 표현 식 이 라 고 합 니 다.연산 대상 은 상수,변수,함수 등 을 포함한다.예 를 들 어 다음은 합 법 적 인 C++산술 표현 식 입 니 다.

  a*b/c-1.5+'a'
C++언어 는 연산 자의 우선 순위 와 결합 성 을 규정 합 니 다.표현 식 을 풀 때 먼저 연산 자의 우선 순위 높 고 낮 음 순서에 따라 실행 합 니 다.예 를 들 어 먼저 곱 한 다음 에 가감 합 니 다.표현 식 a-b*c 가 있 으 면 b 의 왼쪽 은 마이너스 이 고 오른쪽 은 곱셈 이 며 곱셈 은 마이너스 보다 우선 하기 때문에 a-(b*c)에 해당 합 니 다.연산 대상 양쪽 에 있 는 연산 자의 우선 순위 가 같 으 면 a-b+c 와 같이 규정된'결합 방향'에 따라 처리 합 니 다.
C++는 각종 연산 자의 결합 방향(결합 성)을 규정 하고 있 으 며,산술 연산 자의 결합 방향 은'왼쪽 에서 오른쪽으로',즉 왼쪽 에서 오른쪽으로'이기 때문에 b 는 먼저 감호 와 결합 하여 a-b 의 연산 을 수행 한 다음 에 c 의 연산 을 집행 한다.'왼쪽 에서 오른쪽으로 의 결합 방향 은'왼쪽 결합 성'이 라 고도 부른다.즉,연산 대상 이 먼저 왼쪽 의 연산 자 와 결합 하 는 것 이다.이후 에 일부 연산 자의 결합 방향 은'오른쪽 에서 왼쪽으로',즉 오른쪽 결합 성(예 를 들 어 값 연산 자)을 볼 수 있다.'결합 성'에 관 한 개념 은 다른 고급 언어 에서 없 는 것 이 고 C 와 C++의 특징 중 하나 이 므 로 명확 하 게 알 고 싶 습 니 다.
표현 식 에서 각종 수치 형 데이터 간 의 혼합 연산
표현 식 에서 서로 다른 유형의 데 이 터 를 만 나 연산 을 합 니 다.예 를 들 어:

  10+'a'+1.5-8765.1234*'b'
연산 을 할 때,서로 다른 유형의 데 이 터 는 먼저 같은 유형 으로 변환 한 후에 연산 을 해 야 한다.전환 의 규칙 은 그림 에 따른다.
i 를 정형 변수 로 지정 했다 고 가정 하면 f 는 float 변수 이 고 d 는 double 변수 이 며 e 는 long 형 이 며 다음 표현 식 이 있 습 니 다.

  10+'a'+i*f-d/e
연산 순서:
10+'a'의 연산 을 진행 하고 먼저'a'를 정수 97 로 변환 하 며 연산 결 과 는 107 이다.
i*f 의 연산 을 진행 합 니 다.먼저 i 와 f 를 모두 double 형 으로 바 꾸 고 연산 결 과 는 double 형 이다.
정수 107 과 i*f 의 적 을 더 하 다.먼저 정수 107 을 쌍 정밀도 수(소수점 뒤에 0,즉 107.000...00)로 바 꾸 고 결 과 는 double 형 이다.
변수 e 를 double 형 으로 변환 하고 d/e 결 과 는 double 형 입 니 다.
10+'a'+i*f 의 결 과 를 d/e 의 상업 과 감소 시 킨 결 과 는 double 형 입 니 다.
상술 한 유형 전환 은 시스템 에서 자동 으로 진행 된다.
C++자체 증가 와 자체 감소 연산 자(-와+)
C 와 C++에 서 는 표현 식 에서 자체 증가(+)와 자체 감소(-)연산 자 를 자주 사용 합 니 다.그들의 역할 은 변수의 값 을 1 또는 1 로 증가 시 키 는 것 입 니 다.예 를 들 어:
++i(i 를 사용 하기 전에 i 의 값 을 1 로 합 니 다.i 의 원래 값 이 3 이면 j=+i 를 실행 한 후 j 의 값 은 4 입 니 다)
--i(i 를 사용 하기 전에 i 의 값 을 1 로 줄 이 고 i 의 원래 값 이 3 이면 j=i 를 실행 한 후 j 의 값 은 2)
i++(i 를 사용 한 후 i 의 값 을 1 로 합 니 다.i 의 원래 값 이 3 이면 j=i+를 실행 한 후 j 의 값 은 3 이 고 i 는 4 가 됩 니 다)
i-(i 를 사용 한 후 i 의 값 을 1 로 줄 이 고 i 의 원래 값 이 3 이면 j=i-를 실행 한 후 j 의 값 은 3 이 고 i 는 2 로 변 합 니 다)
++i 는 i=i+1 을 먼저 실행 한 후 i 의 값 을 사용 합 니 다.i++는 i 의 값 을 먼저 사용 한 다음 에 i=i+1 을 실행 합 니 다.
++와--를 정확하게 사용 하면 프로그램 을 간결 하 게 할 수 있 습 니까?뚜렷 하 다효율 적주의:
자가 연산 자(+)와 자가 연산 자(-)는 변수 에 만 사용 할 수 있 고 상수 나 표현 식 에 사용 할 수 없습니다.
+와--의 결합 방향 은'오른쪽 에서 왼쪽으로'입 니 다.
자 증 연산 자(++)와 자 감 연산 자(-)의 사용 은 매우 유연 하지만,많은 경우 에 잘못된 의미 가 나타 나'예상 치 못 한'부작용 을 일 으 킬 수 있다.
자동 증가(감소)연산 자 는 C+프로그램 에서 자주 볼 수 있 으 며 순환 문 에 자주 사용 되 며 순환 변 수 를 자동 으로 1 로 추가 합 니 다.포인터 변수 로 다음 주 소 를 가리 키 는 데 도 사 용 됩 니 다.

좋은 웹페이지 즐겨찾기