求助大佬:

今を生きる 2017-10-29 10:00:16
我编写以下代码:
#define N 8
int main()
{
char a[N] = "abcdefg";
char b[N] = {a}; //不知道这样是否可以,但数组名本质就是首地址,所以就试了试,并没有报错,但结果。。。。
printf("%s",b);
}
结果屏幕显示一个垂直制表符,这是怎么回事???
求助大佬


...全文
248 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-10-29
  • 打赏
  • 举报
回复
http://edu.csdn.net/course/detail/2344 C语言指针与汇编内存地址-一.代码要素
wang0635 2017-10-29
  • 打赏
  • 举报
回复
引用 3 楼 qq_40470949 的回复:
那直接b[N] = {a}本质是什么?为什么可以这样做?
把a的值(一个地址)当做字符(一般要截断变短),存入 b[0]
今を生きる 2017-10-29
  • 打赏
  • 举报
回复
那直接b[N] = {a}本质是什么?为什么可以这样做?
wang0635 2017-10-29
  • 打赏
  • 举报
回复
至少应该这样吧
char b[N] = {a[0], a[1]};
CT8100 2017-10-29
  • 打赏
  • 举报
回复
赋值改一下memcpy(b,a,N);

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧