C语言赋值问题 20
各位大神,我遇到一个奇怪的问题:{char*iter='\0';}{char*iter;*iter='\0';}我觉得这两种赋值效果本该是一样的,但是一种编译运行没问题,...
各位大神, 我遇到一个奇怪的问题:
{
char *iter = '\0';
}
{
char *iter;
*iter = '\0';
}
我觉得这两种赋值效果本该是一样的, 但是一种编译运行没问题, 但是第二种直接报错。
请问是为什么呢? 展开
{
char *iter = '\0';
}
{
char *iter;
*iter = '\0';
}
我觉得这两种赋值效果本该是一样的, 但是一种编译运行没问题, 但是第二种直接报错。
请问是为什么呢? 展开
2个回答
展开全部
char *iter; 声明了指针 iter, 但没有动态分配存储空间。
*iter = '\0'; 因没有数据存储空间,所以出错。
char *iter = '\0'; 声明了指针 iter, 并作了初始化,所以 有了 sizeof ('\0') 大小的存储空间,存放了 '\0' 数值,所以正确无误。
*iter = '\0'; 因没有数据存储空间,所以出错。
char *iter = '\0'; 声明了指针 iter, 并作了初始化,所以 有了 sizeof ('\0') 大小的存储空间,存放了 '\0' 数值,所以正确无误。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询