在C++中,我有一个char数组定义为:
char miniAlphabet[] = {'A','B','C','D','E', '\0'};
Run Code Online (Sandbox Code Playgroud)
我想从其他函数修改此数组的值,而不将其传递给这些函数.这是你使用指针的地方吗?
所以我的问题是制作指向这个char数组的指针的正确方法是什么.我只是制作一个指向第一个元素的指针,然后当我想修改值时,我逐步通过内存直到我点击结束字符?
xan*_*tos 17
char miniAlphabet[] = {'A','B','C','D','E', '\0'};
Run Code Online (Sandbox Code Playgroud)
这些是等价的.
char *p1 = miniAlphabet;
char *p2 = &(miniAlphabet[0]);
Run Code Online (Sandbox Code Playgroud)
请注意,()对于运算符的优先级来说,它们是无用的
char *p3 = &miniAlphabet[0];
Run Code Online (Sandbox Code Playgroud)
在C/C++中,数组的名称是指向数组的第一个元素的指针.
然后你可以使用指针的数学做一些魔术......
这将指向第二个元素:
char *p4 = &miniAlphabet[0] + 1;
Run Code Online (Sandbox Code Playgroud)
喜欢
char *p5 = &miniAlphabet[1];
Run Code Online (Sandbox Code Playgroud)
要么
char *p6 = miniAlphabet + 1;
Run Code Online (Sandbox Code Playgroud)