C语言题,对strcpy运用错误的是??

2025-01-01 09:51:02
推荐回答(5个)
回答1:

要往一个地址里copy字符串,这个地址需要被分配了合适大小的内存,并且这内存是可以写入的。

str1和str2都被分配了内存,在栈区分配的。
str3只是一个指针,没有被分配内存,当然也不能往里面存东西了。
其实str4也不能存东西,即答案D也错误,因为str4指向的是常量区,只能读取,不能修改。

回答2:

恩,826说的对。
char Str1[]//创建char数组,创建数组时同时进行了初始化,可以缺省最后一维的参数。
char Str2[8] //创建char数组
char* str3 //创建char指针变量
char* str4 = "string" //创建char指针变量,并且初始化指针变量指向常量字符串"string"

这么解释,你是不是就可以明白了

回答3:

你可以这样替换一下看.
A答案可以替换成str1[7],代表的是str1一建立就分配了7个字节的空间。
B答案str2[8]代表的是,str2一建立就在栈空间分配8个字节。
C答案*str3这个字符指针没有指向任何内存,所有你要往里面填东西是不可以的,指针就好比电话号码如果你没有激活它(内存),那么拨出去的就是空号,是打不通的。
D答案也一样的,因为这个电话号码已经激活了,所以可以拨号。
这样解释应该能理解了吧

回答4:

不用逐个解释的,只有第三个没有申请内存

回答5:

cccccccccccc