如何理解C语言中指针和数组名的区别与联系

我们知道数组名就是指针,可是两者有什么统一性呢,有什么联系呢?可不成以互相转换呢?下面我就来具体地说一说。

东西/原料

  • 一台电脑
  • C说话的编译器

方式/步调

  1. 1

    数组名是个指针常量,保留的是数组的首地址,即“数组第一个元素的肇端地址”,为什么这么说呢?因为数组的元素可能是整形,字符型,假如是整形,那么一个元素占4个字节,而每个字节都对应一个地址,那么数组名保留的地址是哪个呢?是第一个元素的第一个字节的地址。

  2. 2

    既然数组名是指针了,那么可不成以将数组名赋给一个指针?

    然后用这个指针来操作整个数组呢?

    谜底是必定的。

  3. 3

    数组名是指针,可以利用a[i]这样的操作,那么同类型指针p可不成以利用p[i]来取代 *(p+i) 呢?

    谜底是必定的。

  4. 4

    诠释一下,指针进行p+1操尴尬刁难于分歧类型的p是分歧的,具体看存储分歧类型的数据需要几多个字节。

    两个不异类型的指针只能进行减操作;相加,相乘和相除是没有意义的。

  5. 5

    相信大师已经知道了数组名和指针的不异的处所;

    下面说下分歧的处所:

    数组名半斤八两于  类型* const p;

    通俗指针是   类型* p;

    也就是说,数组名a只有“可读权限”,没有“可写权限”,是指针常量。

    a++;    a = p; 等等均是不成以的。

    而通俗指针是可以的。

注重事项

  • 注重区分指针和数组名的区别和联系
  • 发表于 2019-07-01 20:04
  • 阅读 ( 755 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具