【发布时间】:2019-11-26 15:49:09
【问题描述】:
我正在尝试访问“c”中此预初始化 char 指针的所有元素。代码如下:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char **s="Hello";
printf("%c",*(*&s+1));
}
这段代码应该输出“e”,但没有。我做错了什么?
另外,如何逐个访问所有元素?
【问题讨论】:
-
我要一个一个访问所有元素。
-
这可以编译吗?没有警告?请编辑并添加一个问题。你现在只提到了你正在尝试做的事情,但没有提到哪里出了问题。或者这个“e”是什么
-
这给了我更多关于有代码行的警告。这里有一个提示:如果你想使用
%c说明符单独打印"Hello"的所有字符,你需要一个循环。 -
始终使用编译器的警告并引导它们。对于
gcc,我使用-Wall -Wextra -pedantic。这样就发现问题了。 -
@SamiKuhmonen 不,它会发出类似警告的警告:从不兼容的指针类型初始化 [-Wincompatible-pointer-types] char **s="Hello";