c字符指针数组的编译报非数组错误
我看到文档上写的字符串初始化的时候是一个字符数组,然而代码却没有编译通过
以下是我写的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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
问题太简单,基础太薄弱,继续努力
因为:char *ss
所以:*ss是char,char哪来的[0]操作?
所以正确的写法是ss[0]
那怎样输出ss字符串中的第一个字符呢?
回复
@润群 : 占位符用%c, 后面用ss[0]或者*ss就可以了
提示很清楚了,%s是字符串占位符,(*ss)[0]是个什么玩意????
认真看书,别什么问题都来问