C_有关指针的数据类型小结

C_有关指针的数据类型小结

定义 含义
int i; 定义整型变量i
int *p; p为指向整型数据的指针变量
int a[n]; 定义整型数组a,它有n个元素
int *p[n]; 定义指针数组p,它由n个指向整型数据的指针元素组成
int (*p)[n]; p为指向含n个元素的一维数组的指针变量
int f(); f为带回整型函数值的函数
int *p(); p为带回一个指针的函数,该指针指向整型数据
int (*p)(); p为指向函数的指针,该函数返回一个整型值 ,
int **p; p是一个指针变量,它指向一个指向整型数据的指针变量

int (*p)() 可以用指针变量指向整型变量、字符串、数组,也可以指向一个函数。一个函数在编译时被分配给一个入口地址。这个函数的入口地址就称为函数的指针 int max(int, int); int (*p)(); //声明指向函数的指针 p = max;

int *p() 一个函数可以带回一个整型值、字符值、实型值等,也可以带回指针型的数据,即地址。其概念与以前类似,只是带回的值的类型是指针类型而已。

double *search(double(*pointer)[4], int n);

一、指针变量加(减)一个整数

例如:p++、p--、p+i、p-i、p+=i、p-=i等。

指向下一个元素,或者是指向上一个元素

指针变量赋值

将一个变量地址赋给一个指针变量。如:

p=&a; (将变量a的地址赋给p)

p=array; (将数组array首元素地址赋给p)

p=&array[i];(将数组array第i个元素 的地址赋给p)

p=max;(max为已定义的函数,将ma x的入口地址赋给p)

p1=p2;(p1和p2都是指针变量,将 p2的值赋给p1)

两个指针变量可以相减

如果两个指针变量都指向同一个数组中的元素,则两个指针变量值之差是两个指针之间的元素个数

mark

两个指针变量比较

若两个指针指向同一个数组的元素,则可以进行比较。指向前面的元素的指针变量“小于”指向后面元素的指针变量。

关于 void类型

void真正发挥的作用在于:

(1) 对函数返回的限定;

(2) 对函数参数的限定。

例如:void abc( void ); 谈谈void类型用于指针!

void指针 和 const指针

ANSIC新标准增加了一种“void”指针类型,即不指定它是指向哪一种类型数据的指针变量。

例如:void *p;

表示指针变量p不指向一个确定的类型数据,它的作用仅仅是用来存放一个地址

void指针它可以指向任何类型数据。也就是说,可以用任何类型的指针直接给void指针赋值。但是,如果需要将void指针的值赋给其他类型的指针,则需要进行强制类型转换。

猜你喜欢

转载自blog.csdn.net/weixin_40304387/article/details/80431615
今日推荐