【c++】指针
  CiIZfyyIq65u 2023年11月30日 15 0


指针的定义和初始化



//定义一个strA初始化为"ABC"
string strA("ABC");
//定义一个指向string类型的指针p1,并初始化指向strA对象
//*操作符表明p1是一个指针变量;&是取地址操作符
string *p1 = &strA;
//*是取值操作符,取p1指针指向的strA对象的值
cout << *p1 << endl;//ABC
//通过指针可以修改指向对象的值
cout << strA << endl;//ABC
*p1 = "D";
cout << strA << endl;//D



连续声明多个指针容易导致混淆



//p2是指针变量,p3不是指针变量
string *p2, p3;



指针操作



//定义一个指针
string *p1;
string strA("ABC");
//指针指向strA对象
p1 = &strA;
string strB("D");
//通过指针修改strA对象
*p1 = "ABC-";
//指针指向strB对象
p1 = &strB;
//通过指针修改strB对象
*p1 = "D-";
//输出
cout << strA << endl;//ABC-
cout << strB << endl;//D-



指向指针的指针



int ival = 1024;
int *pi = &ival;
int **ppi = π
cout << ival << endl;//1024
cout << *pi << endl;//1024
cout << **ppi << endl;//1024



使用指针访问数组元素



int ia[6] = { 5,2,4,6,8,9 };
int *ip = ia;//指向ia[0]  
cout << *ip  << endl;//5
ip = &ia[4];//指向ia[4]  
cout << *ip << endl;//8
cout << *(ip+1) << endl;//9 //指向ia[5]



使用指针遍历数组



const int iSize = 10;
int iArr[iSize] = { 0,1,2,3,4,5,6,7,8,9 };
//指向第一个元素的指针
int *iBegin = iArr;
//指向最后一个元素后面的指针
int *iEnd = iArr + iSize;
//循环输出数组元素
for (int *ip = iBegin; ip != iEnd; ip++)
{
    cout << *ip << endl;
}
//合起来写
for (int *ip = iArr; ip != (iArr + iSize); ip++)
{
    cout << *ip << endl;
}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月30日 0

暂无评论

推荐阅读
CiIZfyyIq65u