几个c语言题目 请指教!!!
1.char*s;s="abcd"我觉得是错误的(应该s[]="absd")但是卷子上答案说对的?2char*s;scanf("%s",s)错在哪里?3for(i=0;i...
1. char *s ; s="abcd" 我觉得是错误的(应该s[ ]="absd") 但是卷子上答案说对的?
2 char *s;scanf("%s",s) 错在哪里?
3 for(i=0;i<=10;i++)
if(..) continue; 我想问的是执行continue之后 i++要执行吗
4 二叉树的度与结点的度不是一个概念 说;二叉树的度为2 是对的吧 ?
结点的度小于等于2吧
5 卷子上选线性表的顺序存储结构和链式存储结构分别为 随机存储和顺序存储
我觉得怎么顺序存储结构怎么是随机存储呢?? 展开
2 char *s;scanf("%s",s) 错在哪里?
3 for(i=0;i<=10;i++)
if(..) continue; 我想问的是执行continue之后 i++要执行吗
4 二叉树的度与结点的度不是一个概念 说;二叉树的度为2 是对的吧 ?
结点的度小于等于2吧
5 卷子上选线性表的顺序存储结构和链式存储结构分别为 随机存储和顺序存储
我觉得怎么顺序存储结构怎么是随机存储呢?? 展开
3个回答
展开全部
(1)
是对的。
"abcd"是一个字符串常量,这个常量的首字符地址空间赋给了指针变量s,这种操作是允许的。
因为s定义成char *,实际上就是字符型指针了。没有必要再加[],如果是
char s[] = "absd"则又是一种定义方法。
(2)
不行。
因为char *s只是声明了一个字符串指针s,你并没有让s指向一块可使用的空间。
直接就读取s并试图写到目前s指向的一个未知空间里当然不行啦~
至于说scanf里s变成&s根本不是这么回事,s本身就已经是指针了,不需要再用&s去取值。
内存分配才是关键问题。
你可以char str[100]; 然后s = str,或者s = (char *) malloc(100),静态或者动态的给s分配一块空间。
那么你就能往s指向的这块空间里写东西了,当然,写入的东西的长度也不能越界,即大于你分配的空间的大小。
(3)
执行。
(4)
你可以参考一下
http://zhidao.baidu.com/question/133430423.html
(5)
这个需要看看代码,我现在没有你说的“卷子”,所以不好给出太多评论和解释 :)
是对的。
"abcd"是一个字符串常量,这个常量的首字符地址空间赋给了指针变量s,这种操作是允许的。
因为s定义成char *,实际上就是字符型指针了。没有必要再加[],如果是
char s[] = "absd"则又是一种定义方法。
(2)
不行。
因为char *s只是声明了一个字符串指针s,你并没有让s指向一块可使用的空间。
直接就读取s并试图写到目前s指向的一个未知空间里当然不行啦~
至于说scanf里s变成&s根本不是这么回事,s本身就已经是指针了,不需要再用&s去取值。
内存分配才是关键问题。
你可以char str[100]; 然后s = str,或者s = (char *) malloc(100),静态或者动态的给s分配一块空间。
那么你就能往s指向的这块空间里写东西了,当然,写入的东西的长度也不能越界,即大于你分配的空间的大小。
(3)
执行。
(4)
你可以参考一下
http://zhidao.baidu.com/question/133430423.html
(5)
这个需要看看代码,我现在没有你说的“卷子”,所以不好给出太多评论和解释 :)
展开全部
1. 字符串类型的指针,指向对应的字符串的首地址;
2.char *s;scanf("%s",&s)
3. 会加;
4.--
5. 所谓的顺序,保存逻辑上的有序和数据物理磁盘上的顺序;
学好编程的一个很好的思路就是:站在计算机的角度考虑问题;而不要站在人的角度。你把计算机理解得越弱智,你就走得更远!
2.char *s;scanf("%s",&s)
3. 会加;
4.--
5. 所谓的顺序,保存逻辑上的有序和数据物理磁盘上的顺序;
学好编程的一个很好的思路就是:站在计算机的角度考虑问题;而不要站在人的角度。你把计算机理解得越弱智,你就走得更远!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实我嘿乖 说的真不错!太受用了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询