c++指针实例说明
来源:互联网 发布:linux 终端快捷键 编辑:程序博客网 时间:2024/06/13 03:33
指针是一个变量,其值为另一个变量的地址,即内存位置的直接地址。在使用指针存储其他变量地址之前,必须对其进行声明。通过指针,可以简化一些 C++ 编程任务,另外还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C++ 程序员,学习指针是很有必要的。每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。
实例1感受一下:
#include <iostream>using namespace std;const int max = 3;int main(){int var1=20;int var2[max] = {1,10,100};int *p_var1 = &var1;int *p_var2;p_var2 = var2;cout << "var1的地址:" << &var1 << endl;cout << "var2_string的地址:" << &var2 << endl;cout << "the value of var1 is:" << *p_var1 << endl;for (int i = 0; i < max; i++){cout << "the address of var2[" << i << "]=" << p_var2<<endl;cout << "the value of var2[" << i << "]="<<*p_var2<<"\n"<<endl;p_var2++;}return 0;}
运行结果:
实例1中,p_var2++实现了指针的递增运算。
实例2:
#include <iostream>using namespace std;const int max = 3;int main(){char *proverb[] = { "pxx","sr","my","lx" };char *gr = "ur lv is:";int choice = 0;cout << "pls chose a num from 1 to 4" << endl;cin >> choice;if (choice >= 1 && choice <= 4)cout << gr << proverb[choice - 1];elsecout << "sorry,the choice is not in the range" << endl;return 0;}
运行结果:
实例2中,*proverb是一个指针数组。指针和数组是密切相关的。事实上,指针和数组在很多情况下是可以互换的。例如,一个指向数组开头的指针,可以通过使用指针的算术运算或数组索引来访问数组。
实例3:
#include <iostream>using namespace std;int main(){int var;int *ptr;int **pptr;var = 3000;// 获取 var 的地址ptr = &var;// 使用运算符 & 获取 ptr 的地址pptr = &ptr;//获取地址cout << "address of var:" << &var << endl;cout << "address of ptr:" << &ptr << endl;cout << "address of pptr:" << &pptr << endl;// 使用 pptr 获取值cout << "Value of var :" << var << endl;cout << "Value available at *ptr :" << *ptr << endl;cout << "Value available at **pptr :" << **pptr << endl;return 0;}运行结果:
实例3中定义了一个指向指针的指针。
实例4:
#include <iostream>using namespace std;double getAverage(int *arr, int size);int main(){int balance[5] = { 1000, 2, 3, 17, 50 };int *ptr = balance;double avg;// 传递一个指向数组的指针作为参数avg = getAverage(ptr, 5);cout << "Average value is: " << avg << endl;return 0;}double getAverage(int *arr, int size){int i, sum = 0;double avg;for (i = 0; i < size; ++i){sum += arr[i];}avg = double(sum) / size;return avg;}实例4传递指针给函数,同样此时也可以使用数组给函数。
参考:
http://www.runoob.com/cplusplus/cpp-pointers.html
http://wenku.baidu.com/link?url=HRLn_BwrA6ctsrmNRXMYN_JakFgtWn8L5jwarlNnagViX_qfm4po8Maw1FhU1iBKXWe1x-qGD5lUw21OQD6W1qlWLoAp7gGG0eq6d4OL92G
0 0
- c++指针实例说明
- C语言指针说明
- C实例---函数指针
- C指针的一些说明
- c语言指针传递说明
- C语言复杂指针说明
- this指针说明(c++)
- C 指针操作说明上
- C语言指针的实验说明
- C语言指针的复杂类型说明
- 关于指针的说明1——指针.c
- 函数指针的实例说明及个人注释
- C/C++二维指针实例代码详解
- C指针和数组实例解析
- c语言学习笔记之指针实例
- C实例---二维数组(指针实现)
- C指针的使用(实例)
- C语言指针的实例体验
- ssm--1.Spring4+mybatis3+Spring4 mvc整合
- 浅谈SQL SERVER中事务的ACID
- URAL-1627-Join(生成树计数模板)
- mysql安装,mysql远程登录
- jQuery遍历
- c++指针实例说明
- 基于Angluar ui-router的权限管理
- linux 文件操作
- zynq-mpsoc系列之用petalinux生成BOOT.bin文件
- 转载--认识迅雷界面引擎
- 皮尔逊相关系数的计算(python代码版)
- 第七章 参数估计与假设检验
- 转义字符 通用字符名 字符char wchar_t
- 文件IO操作之文件锁fcntl()函数