char *s char s[] 区别
#includevoidmain(){char*s;gets(s);puts(s);}程序在运行时可能会出错,原因是__指针变量s未赋初值____。答案是这样么?我觉是因...
# include
void main( )
{ char *s;
gets(s);
puts(s);
}
程序在运行时可能会出错,原因是__指针变量s未赋初值____。
答案是这样么? 我觉是因为*s分配的内存空间不能更改
因为即使是在 对*s 做初始化之后运行还是报错哇! 展开
void main( )
{ char *s;
gets(s);
puts(s);
}
程序在运行时可能会出错,原因是__指针变量s未赋初值____。
答案是这样么? 我觉是因为*s分配的内存空间不能更改
因为即使是在 对*s 做初始化之后运行还是报错哇! 展开
12个回答
展开全部
问题是你通过char ×s定义的s只是一个字符类型指针,你还没有为这个指针所指向的内容分配空间,因此你输入字符串时会提示错误,你至少得通过malloc或者new为s指向的内容分配足够的空间才行。
追问
new是怎么分配空间的呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char 字符 32位PC机一般在内存中占1个字节
char* 字符型指针 32位PC机指针一般都在内存中占4个字节
char[] 字符数组 按照字符数组的域宽来算
输入方式,输出方式 是什么意思,不是很明白...
char* 字符型指针 32位PC机指针一般都在内存中占4个字节
char[] 字符数组 按照字符数组的域宽来算
输入方式,输出方式 是什么意思,不是很明白...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char* c与char *c 没有任何区别
char* c和char c 有区别,CHAR C是一个字符,CHAR* C是CHAR指针,他可以带表一个字符串引用。
char* c和char c 有区别,CHAR C是一个字符,CHAR* C是CHAR指针,他可以带表一个字符串引用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char a 表示 定义了一个变量,名叫a, 它是字符类型(占用内存的一个字节)char a[1] 表示 定义了一个数组,名叫a, 它是一个包含一个字符类型数据的数组,这个数组只能存放1个字符类型的数据。两者在不接触指针做函数参数的程序的时候功能是一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询