返回首页

深入 理解char char char a[ ] char a[] 的区别(2)

时间:2019-09-19 来源:原创/投稿/转载作者:管理员点击:

  可以看到数组中的四个元素保存了四个内存******,这四个******中就代表了四个字符串的首******,而不是字符串本身。。。

  可以看到 0012FF38 0012FF3C 0012FF40 0012FF44,这四个是元素单元所在的******,每个******相差四个字节,这是由于每个元素是一个指针变量占四个字节。。。

  char **为二级指针, s保存一级指针 char *的******,关于二级指针就在这里不详细讨论了 ,简单的说一下二级指针的易错点。

  为什么能把 a赋给s,因为数组名a代表数组元素内存单元的首******,即 a = &a[0] = 0012FF38;

  虽然都是******, 但是指向的类型不一样,因此,不能这样用。,从其本质来分析,hello world,代表一个******,比如0x003001,这个******中的内容是 h

  ,为 char 型,而 s 也保存一个****** ,这个******中的内容(*s) 是char *,是一个指针类型,所以两者类型是不一样的。。。

  s 变量中保存的是一个无效随机不可用的******, 谁也不知道它指向哪里。。。。,*s 操作会崩溃。。

  二级指针的简单用法。。。。,说白了,二级指针保存的是一级指针的******,它的类型是指针变量,而一级指针保存的是指向数据所在的内存单元的******,虽然都是******,但是类型是不一样的。。。

【责任编辑:管理员】
随机推荐 更多>>