*在变量名前面做什么
What does a * do in front of a variable name?
在变量名前面放一个星号(*)有什么效果,比如在下面的代码行中:char prompt = 'y'
与char *prompt = 'y'
?`
编辑:当我最初发布这个问题时,我认为我在Netbeans中包含的Java示例程序中看到了这个带星号的变量。这是我的错误——这是Netbeans中的C++代码示例。我在一些Java文档中寻找答案,但找不到,这让我在这里提出了这个问题。最后,这是一个我当时没有意识到的棘手问题。
答案是星号与"指针"有关,这与内存寻址有关,除了我之外,任何人都可以更好地解释。而且,它们在Java语言中没有使用,但在C++中肯定是使用的。
char prompt="something"是错误的,因为char只有一个字节长,所以您只能给它分配一个字节长度的东西,比如
char prompt='y'
更详细地"something"在c中表示为字符数组,因此编译器也会大喊您不能将const-char[10](注意长度为10,因为编译器在字符串末尾附加了一个null字符)分配给char。这就像把一桶桶的苹果放在一个苹果上,结果会是一场车祸。另一方面,char* prompt ="something"
是指向字符的指针。这里的prompt指向字符串"something",您也可以像prompt[0]、prompt[1]那样对其进行索引,这将分别导致s和o。
我还假设您错误地将问题标记为java。
这意味着它是一个指针。Java中没有指针。
因此,如果您有char*str,在str中,您没有类似于"Hello World"的内容,而是字符串"Hello世界"所在的内存地址。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 警告处理为错误这里有什么问题
- 什么时候调用组成单元对象的析构函数
- #定义c-预处理器常量..我做错了什么
- 努力将整数转换为链表。不知道我在这里做错了什么
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 什么时候在C++中返回常量引用是个好主意
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- C++避免重复声明的语法是什么
- c++库的公共头文件中应该包含什么
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 字符数组前面的加号是什么意思?
- "-I" 和 "-L" 在添加到路径前面时是什么意思?
- 在这种情况下,在"this"前面加上星号有什么作用?
- 什么意思 :: 在函数调用的前面
- C++函数名称前面的 ~ 是什么意思
- *在变量名前面做什么
- 前面参数中的"&"和"*"是什么意思?
- 什么是malloc前面的(双**)是什么意思
- 函数前面的减号/减号运算符在c++中做什么?