若有定义:char *a,b[5]; a=(char*)malloc(80);则正确的是(C)
答案:4 悬赏:0 手机版
解决时间 2021-03-29 20:17
- 提问者网友:辞取
- 2021-03-28 22:13
若有定义:char *a,b[5]; a=(char*)malloc(80);则正确的是(C)
最佳答案
- 五星知识达人网友:低音帝王
- 2021-03-28 22:41
A 是不对的,因为*a是指针a指向的值,scanf需要第二个参数是某地址。
B 也不对,b[]是一个char型数组,所以b是这个数组的首地址(char [5]型的),作为一个数组,它的首地址是不能改变的,所以这样是不对的。D也是因为这样。
C 是对的,"good"作为一个字符串,他在内存里是有5个内存单元存储的,地址的第一个内存单元的地址,因此你可以认为一个字符串代表一个地址,这里是把"good"的地付给a,而a和b的区别在于,a是一个指针,刚好可以存储字符串的地址,所以C对。
另外,这样内存会泄露,因为malloc没有被free。
B 也不对,b[]是一个char型数组,所以b是这个数组的首地址(char [5]型的),作为一个数组,它的首地址是不能改变的,所以这样是不对的。D也是因为这样。
C 是对的,"good"作为一个字符串,他在内存里是有5个内存单元存储的,地址的第一个内存单元的地址,因此你可以认为一个字符串代表一个地址,这里是把"good"的地付给a,而a和b的区别在于,a是一个指针,刚好可以存储字符串的地址,所以C对。
另外,这样内存会泄露,因为malloc没有被free。
全部回答
- 1楼网友:廢物販賣機
- 2021-03-29 01:27
A
- 2楼网友:北方的南先生
- 2021-03-28 23:53
根据2楼分析外,D也不对,b【5】只能存4个字符
- 3楼网友:北方的南先生
- 2021-03-28 23:20
mallco开辟80个字节,字符类型的储存空间给指针变量a指向,a="good";说明a存字符串的地址。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯