欢迎光临散文网 会员登陆 & 注册

C/C++编程笔记:C语言中的指针和数组之间的区别?

2020-11-29 22:10 作者:C语言编程__Plus  | 我要投稿

指针用于存储动态分配的数组的地址,以及用于作为参数传递给函数的数组。在其他情况下,数组和指针是两个不同的东西,请参见以下程序以证明此语句的合理性。 


sizeof运算符的行为 

C


C ++


输出:

arr []的大小24

ptr 8的大小

不允许将任何地址分配给数组变量。 

C


输出: 

编译器错误:分配给时类型不兼容 

                    从'int *'类型输入'int [2]'


尽管数组和指针是不同的东西,但是数组的以下属性使它们看起来相似。

数组名称给出数组第一个元素的地址。

例如,考虑以下程序。 

C


C++


输出

第一个元素的值为10


使用指针算法访问数组成员。 

编译器使用指针算法访问数组元素。例如,像“ arr [i]”之类的表达式被编译器视为*(arr + i)。这就是为什么像*(arr + i)这样的表达式可用于数组arr,而像ptr [i]这样的表达式也可用于指针ptr的原因。

C


C++


输出:

arr [2] = 30

*(arr + 2)= 30

ptr [2] = 30

*(ptr + 2)= 30

数组参数始终作为指针传递,即使我们使用方括号也是如此。

C


输出:

sizeof(arr)= 24

sizeof(ptr)= 4

* ptr = 10

有关更多详细信息,欢迎持续关注哦~

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

另外,UP在主页上传了一些学习C/C++编程的视频教程,有兴趣或者正在学习的小伙伴一定要去看一看哦!会对你有帮助的~

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

编程学习书籍分享:

编程学习视频分享:



C/C++编程笔记:C语言中的指针和数组之间的区别?的评论 (共 条)

分享到微博请遵守国家法律