第六章 语句

简洁即是美:

*iter++这样的符号:

由于后自增操作符的优先级高于解引用操作,因此*iter++等效于*(iter++).子表达式iter++使iter加1,然后返回iter原值的副本作为该表达式的结果.
 
注意一些简洁的用法:
详细解释:*dest++ = *source++;
1)指针dest加1 (2)指针source加1(3)将source原来所指向的对象赋给dest原来所指向的对象.
 
 
#include <iostream>
#include <cstring>
using namespace std;
 
int main()
{
    int arr1[]={1,2,3,4,5,8,9};
 
    int *source = arr1;
    size_t len=sizeof(arr1)/sizeof(*arr1);
    int *desk=new int[len];
    while(source!=arr1+len)
    {
    *desk++=*source++;  //注意到这里数组确实复制过去了,但是地址跟着指过去了.
    }
    for(size_t i=0;i!=len;i++)//所以在这里.地址指回7个.下面的遍历才是正确的.
   *--desk;
 
    for(size_t i=0;i!=len;i++)
       cout<<desk[i]<<endl;
    return 0;
}
 
for循环的使用:
for(vector<string>::size_type ind=0;ind!=svec.size();++inde)
{
    cout<<svec[ind];
    if(ind+1!=svec.size())
        cout<<" ";
}
这里自己注意重点是最后一个if.如果不是最后一个元素.就输出一个空格 。
原文地址:https://www.cnblogs.com/crazycodehzp/p/3258072.html