加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

* array []是什么意思?

发布时间:2020-12-16 10:33:14 所属栏目:百科 来源:网络整理
导读:参见英文答案 What does that mean in c? char *array[]= { “**”,“**”,“**” };????????????????????????????????????5个 在c中,如果我声明如下: char *somarray[] = {"Hello"}; 这是什么意思 ? 如果我打印它: somarray – 给我一个堆栈中的内存地址
参见英文答案 > What does that mean in c? char *array[]= { “**”,“**”,“**” };????????????????????????????????????5个
在c中,如果我声明如下:

char *somarray[] = {"Hello"};

这是什么意思 ?

如果我打印它:

somarray – >给我一个堆栈中的内存地址

& somarray – >同样的事情,堆栈内存地址,但..

* somarray – >给我一个常量的内存地址

我实际上可以使用* somarray打印字符串.

到底是怎么回事?

解决方法

* array []表示指针数组,在您的示例中:

char *somarray[] = {"Hello"};

somarray []是char *的数组.这个数组大小是1,包含字符串“Hello”的地址,如:

somarray[0] -----> "Hello"

somarray表示数组中第一个元素的地址.

& somarray表示阵列地址

* somarray表示第一个元素的值

假设“Hello”字符串的地址是例如201,而数组somaaray在423地址,那么它看起来像:

+----+----+----+---+---+----+----+----+---+----+ 
| `H`| 'e'|'l'|'l'|'o'| ''|   
+----+----+----+---+---+----+----+----+---+---+----+  
 201   202  203 204 205 206  207   208 209 210  2
 ^
 | 
+----+----+
| 201     |
+----+----+
 423
somarray

和:

somarray给出423

& somarray给出423

* somarray给出201

需要注意的是somarray和& somarray给出相同的值,但在语义上两者都是不同的.一个是第一个元素的地址,另一个是数组的地址. read this answer.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读