Char At:Char*指针和char[]

我正在学习 C ++ 中的指针,并且在 int *,double * 等方面做得很好,但后来我尝试了一些我无法理解的东西。

char word[] = "Hello there";
    cout << word << endl; //Hello there
    cout << *word << endl; //H
    cout << &word << endl; //Address
    char *wordpt = word;
    cout << wordpt << endl; //Hello there
    cout << *wordpt << endl; //H
    cout << &wordpt << endl; //Address
    wordpt = &word[0];
    cout << wordpt << endl; //Hello there
    cout << *wordpt << endl; //H
    cout << &wordpt << endl; //Address

这些是怎么回事?我什至不明白contents of word*word)可以是单个索引。word如何存储在内存中?为什么wordpt允许我给它一个值word,这不是一个地址?

1

指针wordpt在第一种情况下指向数组word的第一个元素,第二个赋值是完全相同的,但明确。

数组会自动转换为指向其第一个元素的指针,如 c 标准所指定,这也适用于 c ++。

让您感到困惑的是,cout自动打印char *指针的内容而不是指针指向的地址,为此有一个要求,指向的数据必须是一个 c 字符串,即一个非nul字节的序列,后跟一个nul字节,这是存储在word中的字节。

所以cout正在访问由wordpt指针指向的数据。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(234)
Zoo tube 8:用索引将 xts/zoo对象写入csv
上一篇
数据库的对象:数据库的面向对象设计(what is object oriented design)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(17条)