*p++、(*p)++、*++p、++*p有什么不同(从大一写的QQ空间迁移过来)

2023-05-06 16:30:54 浏览数 (2)

代码语言:javascript复制
 int a[5]={1,2,3,4,5};  
int *p = a;  
 
*p   先取指针p指向的值(数组第一个元素1),再将指针p自增1;

cout << *p  ; // 结果为 1  
 
cout <<(*p  ); // 1 
执行后a[5] = {1,2,3,4,5}

代码语言:javascript复制
 //下面两种情况相同

 (*p)   先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2) 
cout << (*p)  ; // 1  
cout <<((*p)  ) //2  
 
执行后a[5] = {2,2,3,4,5}

代码语言:javascript复制
  *p 先取指针p指向的值(数组第一个元素1),再将该值自增1(数组第一个元素变为2) 
cout <<  *p; // 2   
cout <<(  *p) //2  
 执行后 a[5] = {2,2,3,4,5} 
 

代码语言:javascript复制
前三个都是先取出p指向的数值  
 
 *  p 先将指针p自增1(此时指向数组第二个元素),* 操作再取出该值 
cout << *  p; // 2  
cout <<(*  p) //2  

注意:上面的每条cout输出,要单独输出才能得到后面的结果。

0 人点赞