xiaorui

计算机技术推动人类社会进步

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  6 随笔 :: 0 文章 :: 9 评论 :: 6493 阅读

看VC论坛中有对C的指针和数组有这样的说法:
1,数组名是一个const指针

2,一个指针的类型是由其所指向的类型决定的,判断两个指针的类型是否相同
就是判断其所指向的类型是否相同
如:
若int*p,char *q,int a[];则p指向int变量,q指向char变量,所以 p和q类型不同
而p和a类型相同
这容易理解,当指针指向数组时,概念就复杂一些了如:
若int (*p)[],int a[][],int b[];则p是指向一维数组,而b是指向int类型的变量
所以p和b类型不同.而a是指向一维数组,所以p和a类型相同

3,[]和&的作用.事实上对于一个二维数组如:int a[3][3],a是指向一维数组的指针
当进行一次a[i]这样的运算后所得到的值是一个指针,其所指对象是一个int类型,
[]运算符的作用除了变址,还将一个行指针变为一个列指针,同理当进行一次&a[i]
这样的运算后所得到的指针又是一个指向一维数组的指针
,即行指针

相对来说数组还是好理解的,只要不是与指针一起使用,但是他们有什么时候分开呢?

指针就是指向地址的标记,他的值不是内存地址的内容,这点总给我一种i节点的感觉。赫赫。
指针的类型决定了指针操作时该指针指向地址变化的规律。

我们可以把指针的类型归纳为二个特征:
1、基本数据类型如(char、int、 float等);
2、扩充数据类型(如一维数组、二维数组、结构等)

posted on   xiaorui的学习.NET  阅读(210)  评论(0编辑  收藏  举报
编辑推荐:
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
阅读排行:
· AI Agent爆火后,MCP协议为什么如此重要!
· Draw.io:你可能不知道的「白嫖级」图表绘制神器
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· Java使用多线程处理未知任务数方案
点击右上角即可分享
微信分享提示