char** ?char* ?
来源:互联网 发布:淘宝精品推荐女装 编辑:程序博客网 时间:2024/05/17 07:33
char**是指向char*的指针,而char*是一个int长度的数据,你声明了它,那么这个int型的数据便会有地址,而char**就是这个数据的地址。
首先你理解一下,为什么 char* 某些时候可以和 char[]等价呢?因为 char*指向的 a,实际上是 a[0]。所以 a 相当于 &a[0],它可以赋给 char*
但是char*只不过是 &a[0]罢了。和 char a[]是两回事儿,后者表示的是一块连续内存。
那么 &a 是什么东西?
我们已经知道了 a 是指 &a[0],是a[0]的地址,是一个int长度的数据。那么 &a 就是说,把这个数据当做了内存在某一块存在的数据,取这个数据的地址。
那么这个数据在内存中真的存在吗?不一定!
比如说 &a[0] 值为 0x3affffff,那么内存中一定存在某一块空间,里面的内容是 0x3affffff吗?不会!
所以 &a 是非法的!
所以,你使用 &a 本身就是非法的。
参考:
《关于 const * 的问题》
- char
- Char
- Char
- char
- char
- char
- char
- char
- char**
- char
- char
- char*
- char
- char
- char** ?char* ?
- char[] char* (char*) malloc()
- char、char*、char**数组
- char、char*、char**数组
- VSTS项目开发流程
- SQL分页
- AutoCAD的一个小技巧
- CRASH ANALYSIS of PPC440+OSE PLATFORM
- string类
- char** ?char* ?
- Struts 2基础
- 我的成长轨迹:“编程本能”?
- 一个有趣、有用的js函数库 php.js
- 关于web项目改名
- const long &i=10
- const int &i=value();
- 数值常量和指针常量
- uCOS和uClinux的比较(摘录自:电子技术应用 作者:朱显新 黄涛 卢珞先 发布时间:2005-12-25)