#include <iostream.h>
void prt(int *z)
{
cout<<*(z++)<<endl;   //若果是cout<<*z  为20我可以理解, 但是……
}int c=20;
void main()
{
prt(&c); 
}

解决方案 »

  1.   

    z =3;
    x =z ++;
    x的值为3.
      

  2.   

    z =3 ;
    x = ++z ;
    x的值为4.
      

  3.   

    z =3 ;
    z++;
    z的值为4
    ++z
    z的值为5
      

  4.   

    猜想:括号没起作用?先dereference后执行增一操作。
    去掉括号试试;
    再用*(++z)试试;
      

  5.   

    #include <iostream.h>
    void prt(int *z)
    {
    cout<<*(z++)<<endl;   //若果为20我可以理解
    cout<<*(z++)<<endl;   //若果为21我也可以理解
    }int c=20;
    void main()
    {
    prt(&c); 
    }
      

  6.   

    cout<<*(z++)<<endl; 
    先输出*z ,z再++
      

  7.   

    Z++
    加的是指针地址还是指针指向的数据呢
    应该是地址加吧。   (*z) ++ 
    和 
       *(z++)
    不同吧。没有测试,但是我认为他们是不同的。
      

  8.   

    cout<<*(z++)<<endl
    // *(z++)语句,(z++)先取出z值,再z=z+1;
    // 因为z++的——表达式——的值是没有自加前的z;
    //所以 这里(z++)=z++    表达式的结果值相等
    *(z++);语句可扩展如下
    p=z++;
    *p;
      

  9.   

    void prt(int *z)
    {
    cout<<*(z++)<<endl;   //若果是cout<<*z  为20我可以理解, 但是……}
    为什么会是20呢
    因为z++是把指针改变了, 但是返回的是改变之间的指针
    如果在 cout<<*(z++) << endl;
    之后再加入一句
      cout << * z << endl;
    你就知道是什么后果了。
      

  10.   

    #include <iostream.h>
    void prt(int *z)
    {
    cout<<*(z++)<<endl;   //此时z = &c并没有+1输出
    cout<<*(z++)<<endl;   //此时z = &c + 1是一个不确定的值....!!!!
    }
      

  11.   

    cout<<*(z++)<<endl;   //20,用了再加
    cout<<*(++z)<<endl;   //???指针已经跑到女儿国了
      

  12.   

    z=20;
    *(z++)<=>*z++ <=> 输出*z:10;z++
    *(++z)<=>输出z的后面地址中的变量,z++