c字符指针数组的编译报非数组错误

发布于 2021-12-03 20:48:16 字数 571 浏览 908 评论 6

我看到文档上写的字符串初始化的时候是一个字符数组,然而代码却没有编译通过

以下是我写的C代码

#include <stdio.h>

main(){
    int n=1 ,*p=&n;
    void* pv = p;
    int* p2 = pv;
    printf("n value is:%dn", *((int*)pv) );
    char* ss = "lala";
    printf("char ss is:%sn", (*ss)[0]);
}

编译提示:

error: subscripted value is neither array nor pointer nor vector
     printf("char ss is:%sn", (*ss)[0]);

请问各位大大,是我哪里写的不对吗?



如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

为你鎻心 2021-12-06 14:02:07

问题太简单,基础太薄弱,继续努力

回眸一笑 2021-12-06 13:58:10

因为:char *ss

所以:*ss是char,char哪来的[0]操作?

所以正确的写法是ss[0]

无人问我粥可暖 2021-12-06 13:57:51
printf("char ss is:%cn", ss[0]);

酒几许 2021-12-06 11:12:00

那怎样输出ss字符串中的第一个字符呢?

勿忘初心 2021-12-06 07:38:13

回复
@润群 : 占位符用%c, 后面用ss[0]或者*ss就可以了

葬花如无物 2021-12-06 03:32:38

提示很清楚了,%s是字符串占位符,(*ss)[0]是个什么玩意????

认真看书,别什么问题都来问

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文