如果我没记错的话,在课堂上我学会了设置一个指向数组的指针,设置指针来保存该数组的第一个元素的地址。
int main() {
char str1[5] = {'j', 'h', 'i', 'o', '\0'};
cout << str1 << endl;
char *a=str1;
cout << a << endl;
}
但是,以下代码打印出&#39; jhio&#39;而不是j的内存地址?那是为什么?
答案 0 :(得分:3)
许多类型都会重载nohup $SENDMAIL -t < $MAILLOCATION &>/dev/null &
disown
。对于类型operator <<
,它输出指针指向的字符串。如果要输出存储在指针中的地址,则应编写
char *
或
cout << ( void * )a << endl;
答案 1 :(得分:0)
str1的类型降级为char *,这是一个C风格的字符串,与"
的调用相同。
答案 2 :(得分:0)
char str1[5] = {'j', 'h', 'i', 'o', '\0'};
cout << str1 << endl;
char *a=&str1[0];
cout << &a << endl;
运营商&#34;&lt;&lt;&#34;在cout中,它需要一个指向行开头的指针
答案 3 :(得分:0)
写cout << a << endl;
将打印出存储在该目标的值。如果要打印指针的ADDRESS,可以使用&
,这在传递引用中很常见,以获取指针的地址。这看起来像是:cout << &a << endl;
。