现在的位置: 首页 > 综合 > 正文

C/C++指针实战经验

2018年01月31日 ⁄ 综合 ⁄ 共 585字 ⁄ 字号 评论关闭

一、C/C++

 

测试环境A

电脑:笔记本电脑,WIN 7 32位 , Intel i7-2640 2.8GHz CPU4G内存

软件:VC++ 6.0

 

1、指针和数组

#include <iostream>

using namespace std;

int main()

  int a[2]={2,8}; //一维数组

  int *p; //指向一维数组的指针

  p=a; //等价于p=&a[0]

  //调用方式:*(p+i)*(a+i)

  cout<<*(++p)<<endl; 

  return 0;

}

蓝色部分输出结果为:

8

如果换成:

cout<<*(p++)<<endl;

则输出:

2

还有一种常见用法:

cout<<*p++<<endl;

其实是上面那种的简写,仍然等于2

 

2、下面程序的输出是

#include<iostream >

using namespace std;

void prt(int *y, int *z) {

cout<<++*y<<","<<*(z++)<<endl;

}

int b=40;

int c=20;

int main() { 

prt(&b,&c); // 41 20

prt(&b,&c); // 42 20

return 0;

}

输出:

41,20

42,20

解析:*(z++)这是指针地址后移一位,不影响*z的值。前者,++*y则会对指向的值造成影响。

 

抱歉!评论已关闭.