c/c++の文字がつながっている運用を正しく理解する

1911 ワード

c/c++の学習では、文字がつながっているときの使用がよく見られますが、確かに混同しているように見えます.これは、皆さんがどのように分析しているかによって決まります.2つの例を挙げてみましょう
例1:まず、次のコードが合法的であることを説明し、コンパイルが通過した.
#include using namespace std; int main() {  int x=10;   while (x-->0)   {  cout<結果は9 8 7 6 5 4 3 1 0で、間違いなく結果は大丈夫です.そう、-->は2つのオペレータがちょうど一緒に出会っただけで、彼らは自己減算演算子--と比較演算子>より大きい:合法的なオペレータです.ここにはc/c++を学ぶ多くのオペレータがいます.goes toオペレータと呼ばれ、x-->0はxが0に近づくことを示しています.もちろん、これは私の個人的な定義にすぎません.この2つの文字がつながっているのは特殊だと思います.
前と似たような
#include using namespace std; int main() {      int x = 10;      while (x --\                 \                  \                   \                     > 0)      {        cout<結果は同じですよ
これは皆さんが勉强の过程でよく见ることだと信じています.
このような問題を解決するにはアセンブリを理解する必要があり,またコンパイラとも関係がある.
ここは私の理解だけで、権威とは限らないよ......
#include using namespace std; int main() {  int i = 1;  int j = (i++)+(i++)+(i++);  i = 1;  int k = (++i)+(++i)+(++i);  cout<j=3は、i++が先に演算されてから++が行われるため、その結果は3であり、k=10は++iが先++であるため演算されるが、すべての加算が完了してから演算されるのではなく、9ではなく、貪食法でk=((++i)+(++i)+(++i)つまりk=(3+3)+4=10を先に行う
 
このような問題を計算するには必ず実質を明らかにしなければならない.
++iは前置自増であり、i++は後置自増であり、前者iは先に1を加えてから他の演算に参加し、後者iは先に他の演算に参加してから1を加え、単独の文i++であれば.または++i;両者の動作効果は、for(int i=0;i<10;i++)とfor(int i=0;i<10;++i)が実現する機能のように、例えば
int i = 0, j;
j = i++;実行結果iは1であるがjは0である
int i = 0, j;
j =++i;
実行結果iは1であるがjは1である
自分で見終わったらどんな感じがしますか?皆さん、ご指摘ください.喜んで皆さんと一绪に勉强して、交流します~~~