*在变量名前面做了什么?

时间:2014-10-26 21:13:43

标签: c++ c

将星号(*)放在变量名称前面会产生什么影响,例如在以下代码行中: char prompt = 'y'char *prompt = 'y'?“

编辑:当我最初发布这个问题时,我认为我在Netbeans中包含的Java示例程序中看到了这个带星号的变量。那是我的错 - 这是Netbeans中的C ++代码示例。我在一些Java文档中寻找答案,但是找不到它让我在这里提出问题。最后,这是一个我当时并没有意识到的棘手问题。

答案是星号与"指针"有关,这与anyone but me更好地解释的内存寻址有关。并且,它们不是在Java语言中使用,但肯定是在C ++中。

2 个答案:

答案 0 :(得分:1)

这意味着它是一个指针。 Java中没有指针。

所以,如果你有char * str,那么你就没有像#34; Hello World"但是内存地址字符串" Hello World"是

答案 1 :(得分:1)

char prompt ="某事"这是错误的,因为char只有一个字节长,所以你只能给它分配一个长一个字节的东西,比如

char prompt='y' 

更精心"某事"在c中表示为一个字符数组,因此编译器也会大声说你不能指定const char [10](注意长度是10,因为编译器在字符串的末尾附加了一个空字符)到char.It只是比如把一桶苹果放到一个苹果上,结果就是车祸。 另一方面,char* prompt ="something"是指向一个字符的指针。这里提示符指向字符串""你也可以使用索引,如提示[0],提示[1],这将分别导致s和o。

我还假设您错误地将您的问题标记为java。