c++程序入门(一)——指针
来源:互联网 发布:excel数据共享 编辑:程序博客网 时间:2024/06/11 22:08
1、指针定义:存放变量地址的变量。int *pi;
2、* 和 &:
*:指针运算符是间接引用操作符,产生指针所指向的数据;
&:取地址操作符(和*一起使用时,因为在另外的情况下,&也可以用作引用)
3、常量指针和指针常量
常量指针:const int* pi1; //所指向的对象只能被读取,不能被改写!
指针常量:int * const pi2; //不能修改指针
4、①指针和数组
int a[10],*p;
p=a;
定义指针指向数组时,其实是指向数组的第一个元素的地址。
②指针和函数
指针可以作为函数的参数使用。
5,以冒泡排序程序为例,编写使用函数指针实现冒泡排序的程序。程序提示用户,输入1:升序排列,传递ascending指针;输入2,:降序,传递descending指针。代码如下:
/***使用bubble排序,用户输入1:升序;输入2:降序*/#include <iostream>#include <iomanip>using namespace std;void bubble(int work[],const int size,int (*compare)(int ,int));int ascending(int a,int b);int descending(int a,int b);int main(){ const int arraySize=10; int order,counter; int a[arraySize]={2,6,8,4,10,12,89,68,45,37}; cout<<"Enter 1 to sort in ascending order:\n"<<"Enter 2 to sort in descending order:"<<endl; cin>>order; cout<<"\nData items in original order\n"<<endl; for(counter = 0; counter < arraySize;counter++) cout<<setw(4)<<a[counter]; if(order == 1) { bubble(a,arraySize,ascending); cout<<"\nData items in ascending order\n"<<endl; } else { bubble(a,arraySize,descending); cout<<"\nData items in descending order\n"<<endl; } for(counter=0;counter<arraySize;counter++) { cout<<setw(4)<<a[counter]<<endl; } return 0;}void bubble(int work[],const int size,int(*compare)(int x,int y)){ void swap(int *element1Ptr,int *element2Ptr); for(int pass=1;pass<size;pass++) for(int count =0;count<size-1;count++) { if((*compare)(work[count],work[count+1])) swap(&work[count],&work[count+1]); }}//交换两个数,但是形参使用的是指针啊!!void swap(int *element1Ptr,int *element2Ptr){ int temp; temp = *element1Ptr; *element1Ptr = *element2Ptr; *element2Ptr = temp;}int ascending(int a,int b){ return b<a;//swap if b<a}int descending(int a,int b){ return b>a;//swap if b>a}
阅读全文
0 0
- c++程序入门(一)——指针
- C语言入门——指针(一)自学总结
- C语言指针入门(一)
- LINUX C程序开发每日一题——指针
- c语言—指针(入门1)
- 指针入门(一)
- C角度(一)——任何C程序,可理解为指针指向某一个字符,然后字符匹配
- c++程序入门(二)——指针代码举例
- 《C和指针》经典入门程序
- 边玩崩程序边理解C++(一) 类和指针
- C语言基础程序(一):野指针
- C语言编程入门——指针(上)
- C语言编程入门——指针(下)
- C语言——指针入门
- C++指针入门(一)
- C++指针入门(一)
- C/C++ 中指针的本质(1)——指针之基础入门篇
- C语言——指针详解(一)
- 01Python基础语法
- ccf 图像旋转
- vs2015常用快捷键总结
- 1020. Tree Traversals (25)
- BZOJ[2157]旅游 树链剖分+线段树
- c++程序入门(一)——指针
- 关于KS系列Android开发学习总结
- SEON
- webpack3.x文件配置
- 图像滤波处理:均值、中值滤波器实现
- 微信小程序处理用户拒绝授权情况及微信登录,登录保存等系列解决方案
- 数据结构 之 线性表中的顺序表
- Unity3D面试题整合——第三部分及答案
- 3.1