C语言:指针的几种形式二

简介:

一、const指针

1、const int* p和int const* p:两者意义是相同的。指向的内容是只读数据,不可以q改变;但是指向的地址可以改变。
2、int* const p:必须先对指针初始化,而且指向的地址是只读的,不可以再被改变;但是指向的内容可以改变。
3、const int* const p:既不可以改变指针指向的地址,也不可以改变指针指向的内容。
 
二、指针数组:元素类型全是指针
类型名称*数组名[数组长度]
例如:
   char* pc[10]:字符指针数组,常用来可以表示一个字符串
 
三、数组指针:指针指向数组名
类型名称(*指针名)[数组长度]
例如:
   int a[5] = {1,2,3,4,5};
   int (*temp)[5] = &a; //temp指向的是整个数组
注意:
   1、定义指针时()不能丢掉,因为[]优先级比*高,若丢掉,就会变成指针数组。例如:int *temp[4]//数组4个元素都是int*。
   2、数组长度、元素类型必须与指针定义时给出的长度、类型相同。
 
四、函数指针
数据类型(*指针变量名称)(形式参数列表)
本质:函数放在代码区,函数指针指向代码区,通过函数指针可以访问代码区中的内容。括号()不可以省。。。
例如:float (*p)(float a,float y):float类型指针函数
     float* p(float x,float y):函数p返回值为float指针类型
 
五、总结数组与指针的区别:

1、指针的本质是一个与地址相关的复合类型,它的值是数据存放的位置(地址);数组的本质则是一系列的变量。
2、数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。指针可以随时指向任意类型的内存块,它的特征是"可变",所以我们常用指针来操作动态内存。
3、当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。 

因为第三条,当把数组名作为函数的形参进行传递时,该效果等同于传递一个同类型的指针。直接在程序当中调用 函数名(数组名)即可。

 
程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!
分类:  C

本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4887949.html,如需转载请自行联系原作者
相关文章
|
5月前
|
安全 程序员 编译器
【C语言基础】:深入理解指针(二)
【C语言基础】:深入理解指针(二)
【C语言基础】:深入理解指针(二)
|
5月前
|
存储 C语言 C++
【C语言基础】:深入理解指针(三)
【C语言基础】:深入理解指针(三)
|
5月前
|
存储 编译器 C语言
【C语言基础】:深入理解指针(一)
【C语言基础】:深入理解指针(一)
|
6月前
|
C语言
C语言指针与字符串
C语言指针与字符串
34 0
|
6月前
|
安全 C语言
指针与字符串:C语言中的深入探索
指针与字符串:C语言中的深入探索
103 0
|
6月前
|
C语言
C语言变量和指针
C语言变量和指针
31 0
|
存储 C语言
C语言:指针类型的意义
1.指针的类型决定了解引用时访问几个字节 2.指针的类型决定了指针+1、-1跳过几个字节
47 0
|
存储 程序员 C语言
C语言 — 指针基础篇(1)
对C语言指针基础的回顾 本文对指针、野指针、指针类型的内容进行介绍 在指针基础篇(2)中进行对指针运算、指针和数组、二级指针、指针数组进行介绍 如果有帮助,还请各位小伙伴多多点赞关注收藏,后期会持续进行更新!!!
106 0
|
编译器 C语言
C语言 — 指针基础篇(2)
对C语言指针基础的回顾 在指针基础篇(2)中进行对指针运算、指针和数组、二级指针、数组指针进行介绍 如果有帮助,还请各位小伙伴多多点赞关注收藏,后期会持续进行更新!!!
50 0
|
存储 程序员 C语言
C语言中指针的作用与使用技巧
C语言中指针的作用与使用技巧
384 1