Cpp: 할당, 자동 증가 및 화살표 조작 부호 등

2817 단어
1. 할당 작업
값을 지정하는 왼쪽 동작 수는 비const 왼쪽 값이어야 합니다.
int i, j, val;
const int ci = i;    //ok
1024 = val;        //error:  
i + j = val;    //error:  
ci = val;        //error:  

우결합성
int val1, val2;
val1 = val2 = 0;

상술한 문장은val2를val1에게 부여한다.그런데 다음은 틀렸어요.
int val, *p;
val = p = 0;    //error

위: p=0 성립되었지만 val = p 오류가 발생했습니다.
복합 할당 조작부
설명
조작부호
산수 조작부호
+= -= *=/= %=
비트 조작 부호
<<= >>= &= ^=
=
사용 방법
a op= b;    //op 

... 과 같다
a = a op b;

2. 자증자감
int i = 0, j;
j = ++i;    //j = 1, i = 1; ++i 
j = i++;    //j = 1, i = 2; i++ 

조합 사용해 인용과 자증
vector::iterator iter = ivec.begin();
while(iter != ivec.end()){
    cout << *iter++ << endl;
}

증가된 우선순위는 인용 풀이*(iter++)보다 높다.
화살표 연산자
C++는 점 작업과 참조를 포함하는 표현식에 화살표 조작자를 제공합니다.
Item *p = &item1;
(*p).func();    //1
p->func();        //2

1, 2등가.
예를 들다
컴파일러:vector 대상을 정의합니다. 모든 요소가string 형식을 가리키는 바늘입니다.각 요소의 내용과 길이를 출력합니다.
string s;
vector v;
while (cin >> s)
{
    string *sp = new string(s);
    v.push_back(sp);
}
vector::iterator iter = v.begin();
while (iter != v.end()) {
    string *tmp = *iter;
    cout << tmp->size() << ", " << *tmp << endl;
    delete tmp;
    iter++;
}

테스트 결과
hello↙
world!↙
^Z↙
5, hello
6, world!

조건 조작부호
cond ? expr1 : expr2;

먼저 cond의 값을 계산하고true라면 expr1, 그렇지 않으면 계산expr2을 한다.중첩하여 사용할 수 있습니다. 예를 들어 세 개의 최대 값을 구하십시오.
int max = i > j
    ? i > k ? i : k
    : j > k ? j : k;

그러나 이렇게 하는 것을 추천하지 않습니다. 다음 코드로 바꿀 수 있습니다.
int max = i;
if (j > max)
    max = j;
if (k > max)
    max = k;

출력 표현식에서 사용 조건 조작자
cout << (i

두 번째 문장은
cout << (i

sizeof 조작부호
객체 또는 유형 이름의 길이를 반환합니다.
sizeof(type_name);
sizeof(expr);
sizeof expr;
  • char 유형이나char 유형 값을sizeof한 결과 1;
  • 포인터에 대해 이 포인터를 저장하는 데 필요한 메모리를 되돌려줍니다.지침이 가리키는 내용을 얻으려면 인용 동작을 풀어야 한다.
  • 대수조는 대수조 원소를sizeof로 하고 원소의 개수를 곱하는 것과 같다.

  • 쉼표 연산자
    쉼표로 구분된 표현식 그룹입니다. 이 표현식은 왼쪽에서 오른쪽으로 계산되며, 결과는 가장 오른쪽의 표현식 값입니다.
    int cnt = vec.size();
    for(vector::size_type ix = 0; ix != vec.size(); ++ix, --cnt)
        vec[ix] = cnt;
    

    매번 순환,ix자증1,cnt자감1.
    END.

    좋은 웹페이지 즐겨찾기