如何对char指针数组和double指针进行内存分配。
char *s[]={"knowledge","is","power"};
char **p;
p=s;
cout<<++*p;
在上述编译器给出的代码输出中,- Nowledge
我的问题是公正,如何将值分配给指针p以及如何将其递增。
答案 0 :(得分:1)
运算符char[] charArray = new char[50];
for(int i = 0; i < charArray.Length; i++)
charArray[i] = 'h';
和++
具有same precedence and are both right-to-left-associative,这意味着最右边的运算符(*
)首先被执行。 *
的值是指向第一个字符串的第一个字符的指针。运算符*p
将其递增,使其成为第一个字符串的 second 字符的指针。这就是您获得“知识”的方式。