| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 926 人关注过本帖
标题:菜鸟,没办法!
只看楼主 加入收藏
语文不及格
Rank: 1
等 级:新手上路
帖 子:30
专家分:2
注 册:2008-3-20
结帖率:100%
收藏
 问题点数:0 回复次数:9 
菜鸟,没办法!

自学c中!

(10)设已有定义: char *st="how are you"; 下列以下程序段中正确的是 。

(A)char a[11], *p=a; strcpy(p,&st[4]);
(B) har a[11]; strcpy(++a, st);
(C) har a[11]; a=st;
(D) char a[], *p; strcpy(p=&a[1],st+2);
(E) char a[], *p; strcpy(++a, st);


问题1:"how are you"装进数组中,数组要a[??]才够装?
   “how are you”一共占"how are you/o"12字节?
  
    2:D和E中的数组声明“char a[]”,没错??

    3:A答案中:最后那个“&st[4]”怎么理解?

    4:D答案中,最后那个“st+2”怎么理解?

    5:结合题目的 已有定义: char *st="how are you" , A 答案中的"&st[4]"如何理解???
           它指的是"how空格"?还是"are you/0"?
    6:C答案中如果 char a[12]是否就会正确了?

问题 1-6已完美解决

        (请原谅我是菜鸟,愿意回答问题的朋友,请用一个菜鸟应该看得懂的语言,随便解释一下相关的原理知识!
          目前我对c语言就大概懂得了点是怎么回事,相当于建一面墙,砖块乱搭扰搭也像了副墙的样子,可是缝
          隙太多也不懂得从何补起,无从下手!我感觉某些关键地方没掌握好,就像墙的关键力学支撑点没搭好!)
新问题:   

      7: char a[1], 数组 a 能装进几个字符??
         int  b[1], 数组 b 能装进几个数字??

  至少数组要两个无素才能装字符进去对吗?
 因为后面还要一个位置放标志结束符?
  数字呢??也要吗??
8 楼哥们的答案我看不懂,为什么有8/8  16/16   32/32 ?????
  还是谢谢你!

[[it] 本帖最后由 语文不及格 于 2008-9-24 18:51 编辑 [/it]]
搜索更多相关主题的帖子: 办法 
2008-09-24 01:02
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
回答
   问题1、“how are you”一共占"how are you"12字节?//当然,因为字符串结束标志也要占一个字节。
   2、D和E这种数组声明是在栈中给它分配空间,所以没错
   3、&是地址运算符,得到数组st[4]的地址
   4、这里的st+2<==>&st[2]
2008-09-24 07:26
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
5 &st[4]为一文本指针,指向只读字符串"are you"。(注意,'\0'不是字符串的组成部分,而只是标志字符串结束的一个“信号”而已!所以不要写"are you\0",如果这么写,就代表末尾有两个\0的字符串are you)
6 不行,无论如何数组名都绝对不允许作左值使用!

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-24 08:15
liyanhong
Rank: 3Rank: 3
来 自:水星
等 级:禁止访问
威 望:8
帖 子:1867
专家分:0
注 册:2008-5-3
收藏
得分:0 
[bo][un]StarWing83[/un] 在 2008-9-24 08:15 的发言:[/bo]

5 &st[4]为一文本指针,指向只读字符串"are you"。(注意,'\0'不是字符串的组成部分,而只是标志字符串结束的一个“信号”而已!所以不要写"are you\0",如果这么写,就代表末尾有两个\0的字符串are you)
6 不行, ...


"are you\0"与"are you"的长度一样的吧

爱上你 是 我的错  可是离 开  又舍不得  听着你为我写的歌     好难过
如果说 我说如果  我们还 能  重新来过   不去计 较 谁对谁错  会怎么做
2008-09-24 09:04
smltq
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:566
专家分:400
注 册:2008-1-21
收藏
得分:0 
长度是一样,在内存的占用空间不一样- -
2008-09-24 12:50
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
size和len是两个概念……
char str1[]="are you\0",str2[]="are you";
这时strlen(str1) == strlen(str2),但是sizeof(str1) != sizeof(str2)

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-09-24 13:09
语文不及格
Rank: 1
等 级:新手上路
帖 子:30
专家分:2
注 册:2008-3-20
收藏
得分:0 
!!!!!!!!!!!!!!!!
如如题题!!!!
2008-09-24 16:32
iFreeBSD
Rank: 4
等 级:业余侠客
威 望:4
帖 子:474
专家分:236
注 册:2007-11-5
收藏
得分:0 
8/8 = ?16/16=? or 32/32=? 算术总及格吧

[[it] 本帖最后由 iFreeBSD 于 2008-9-24 17:10 编辑 [/it]]

without further ado, let’s get started
2008-09-24 16:55
lyzx3655
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-9-24
收藏
得分:0 
不懂...

[url=http://www.]连连看[/url]
[url]http://www.[/url]
2008-09-24 17:22
快速回复:菜鸟,没办法!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025093 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved