c语言排序问题问题???为什么D不对????


#include<stdio.h>#include<string.h>voidfun(char*s){chara[7];s=a;strcpy(a,"look");}int...
#include <stdio.h>#include <string.h>void fun(char *s){char a[7];s=a;strcpy(a,"look");}int main(){char *p=NULL;fun(p);puts(p);return 0;}A)look【】【】【】;B)look;C)look【】【】;D)不确定的值
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
fun函数不会修改实参p的值,执行完fun后,p依旧为NULL,所以执行puts(p)后,程序很可能就崩溃了。char a[7];是局部变量
,当p改变从null,指向a的时候这个时候p是a的地址 ,但fun运行结束之后a随之释放,但p仍然指向a的地址,只是地址当中的值给释放了}

选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
ABC都是正确的,那么就不解释了。关于D选项,demo.d1赋值99。由于我们已经知道union的特征是内存共用,也就是B选项所描述的,同时float和int都是占4个内存字节数。在上面的铺垫下,我这样描述:在计算机中,浮点数的存储和整形数据存储方式是不一样的,浮点数存储方式如一楼回答那般比较复杂,在计算机组成原理课程会学习。他们在内存中的存储规则不一样,如下举例。整形99换算成16进制在内存储存,其值是 0x 00 00 00 63。浮点型99.0换算成16进制在内存储存,其值是 0x 42 C6 00 00。所以可以说,16进制数 0x 00 00 00 63换算成十进制浮点数绝对不是99.0。至于0x 00 00 00 63换算成十进制浮点数是什么我也没有计算过,主要是我不记得了,我用编译器输出的结果是0.000000。我觉得也不需要纠结这个了。还有疑问再追问吧选d,因为int和float的占用大小是一样的,但是存的方式不一样,于是共同体用int存再用float取的话,值是一个按整形存的0和1的值,按浮点取,因为两种类型的机制不一样,所以一般取不出99.0,而是一个系统机制决定的值。}

选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部因为对于c语言的字符数组,如果使用字符串赋值的话只能在初始化的时候使用,否则就只能使用strcpy函数,如strcpy(str[1], "...");已赞过已踩过你对这个回答的评价是?评论
收起
展开全部因为str[3][10]和str[1]之间用的是分号。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
为你推荐:
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
}

我要回帖

更多关于 c语言排序问题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信