C++指针的操作和运算包括:
1. 定义指针
int* ptr; // 定义整形指针 char* p; // 定义字符指针 double* pd; // 定义双精度浮点数指针
2. 初始化指针
int var = 10; int* ptr = &var; // 指向var的指针 double d = 5.5; double* pd = &d; // 指向d的指针
3. 空指针
int* ptr = nullptr; // C++11中的空指针写法 int* ptr = 0; // 早期的空指针写法,等价于nullptr
4. 解引用指针*
int var = 10; int* ptr = &var; cout << *ptr; // 10,解引用访问var的值
5. 指针加法和减法
int arr[5] = {1, 2, 3, 4, 5}; int* ptr = arr; cout << *(ptr+2); // 3,ptr加2后指向第三个元素 cout << ptr+3; // ptr加3后指向第四个元素的地址
6. 指针比较
int var1 = 10; int var2 = 20; int* ptr1 = &var1; int* ptr2 = &var2; if (ptr1 > ptr2) { ... } // 指针的值较大,指向的内存地址较大 if (ptr1 == ptr2) { ... } // 比较指针的值是否相等
7. const指针和指向const的指针
int var = 10; const int* ptr = &var; // 指向const int的指针,可以变化ptr,但不能通过ptr修改var int const* ptr = &var; // 等价写法 int var = 10; int* const ptr = &var; // const指针,ptr不能变化,但可以通过ptr修改var的值
8. 野指针
int* ptr; // 未初始化指针,是野指针 *ptr = 10; // 非法,会导致未定义行为
以上就是C++指针的操作和运算的详细分析。
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录