指针
来源:互联网 发布:网络信息有限公司名字 编辑:程序博客网 时间:2024/06/07 15:42
1.指针数组
#定义:指向指针的数组。
#理解: 一个存放int类型的数组称为整型数组,那么存放指针的数组就叫指针数组。
int *arr[10];
#指针数组中的每一个元素均为指针,指针数组中的元素可以表示为“*(*(arr+i))”
,又因为“()”的优先级较“”高,且“”是右结合,因此可以写作**(arr+i)
。
#由于数组元素均为指针,因此arr是指向i+1个元素的指针。
2.数组指针
定义:数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
int(*p)[10]
;
p即为指向数组的指针,又称数组指针。
例如:
int a[4][5];
int (*p)[5]=a;
#这里a是一个二维数组的数组名,相当于一个二级指针常量;p是一个指针变量,它包含5个int元素的一维数组,此时p的增量以它所指向的一维数组长度为单位;*p+i是二维数组a[0][i]的地址;*
(p+2)+3表示a[2][3]地址,*(*(p+2)+3)表示a[2][3]
的值。
举例
char c[][3] = {"妹", "妹", "你", "坐", "船", "头"};char (*p)[3];int i;p = c;for(i=0; i<6; i++){printf("%s, ", *(p+i)); //*p++;}printf("\n"); //p=c;/p--;for(i=5; i>=0; i--){printf("%s\n", *(p+i)); //*p--;/*--p;}
3.函数指针
函数类型”说明函数的返回类型,“(标志符指针变量名 )”中的括号不能省,若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
函数指针的申明方法为:
返回值类型`(*指针变量名)([形参列表]);
int fun(int x);//声明一个函数int (*p)(int x);//声明一个函数指针p=fun;//将fun函数的首地址付赋给指针p
例子:
include <stdio.h>int max(int x,int y){return ( x > y ? x : y); }int main(){int (*ptr)(int, int);int a, b, c;ptr = max;scanf("%d%d", &a, &b);c = (*ptr)(a, b);printf("a =%d, b =%d, max = %d", a, b, c);return 0;}
4.指针函数
定义:指针函数是指带指针的函数,即本质是一个函数。
格式:
返回类型标识符 *函数名称(形式参数表){函数体}
例子:
#include<stdioh>float *find(float(*pionter)[4],int n);//函数声明int main(void){ static float score[][4]={{60,70,80,90},{56,89,34,45},{34,23,56,45}}; float *p; int i,m; printf("Enter the number to be found:"); scanf("%d",&m); printf("the score of NO.%d are:\n",m); p=find(score,m-1); for(i=0;i<4;i++) printf("%5.2f\t",*(p+i)); return 0;}float *find(float(*pionter)[4],int n)/*定义指针函数*/{ float *pt; pt=*(pionter+n); return(pt);}
5.指向函数指针数组的指针
注:表示还没懂.
0 0
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- 指针
- Linux设备模型(2)_Kobject
- STM32 flash读写源程序
- 按钮部件
- Linux学习 DNS服务
- pyhon2.6安装setuptools提示依赖appdirs,安装appdirs提示依赖setuptools
- 指针
- C++函数中const引用形参的一点理解
- leetcode 109Convert Sorted List to Binary Search Tree
- css
- oracle11g 自动内存管理
- cc2530 协议栈 内部 FLASH
- 蒟蒻DP专题训练2--HDU1231
- 【百度春招】 买帽子
- Linux学习篇第三章之~高速缓存DNS