【发布时间】:2014-09-28 08:49:12
【问题描述】:
我无法弄清楚数组和指针的工作方式之间的区别以及它们如何相互关联。
代码:
char str[]="banti is a nice girl";
char *ptr=str+6;
printf("%s",ptr)
输出:is a nice girl
-
我没有在
printf语句中使用解引用运算符,
为什么它给我的是数组的内容,而不是地址? 当我写
char*ptr=str[6]时,我得到Error: cannot convert char to char*-
这个错误是什么意思?是不是要引用一个数组地址,我们需要放
&str[6],但我们不需要放str+6?如果是这样,其背后的逻辑是什么?
【问题讨论】:
-
这段代码无法编译,第一行缺少
*。 -
str[6]是char,而不是char *。str表示str的第一个元素的地址已被评估为指针。 -
我建议你在尝试学习 C 之前先学习 C++。
标签: c++ c arrays pointers printf