| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 548 人关注过本帖
标题:请教一些学习中的问题?
只看楼主 加入收藏
aaa度
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-4
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:6 
请教一些学习中的问题?
1:
#include
char *ss (char *s)
{return s+strlen (s)/2;}                      这一步什么意思?
main ()
{char *p,*str="abcdergh";
p=ss(str);printf("%s\n",p);}

2:
main()
{char s[]="159",*p;
p=s;
printf("%c",*p++);printf("%c",*p++);}       结果为什么不是59?

3:
main()
{char s[]="abcd",*p;
for (p=s+1;p<s+4;p++) printf("%s\n",p);} s的值怎么个意思??
4:
#include <stdio.h>
#define N 8
void fun (int *x,int i)              void 无返回值什么意思?求详解。。。
{*x=*(x+i);}
main()
{int a[N]={1,2,3,4,5,6,7,8},i;
fun (a,2);
for(i=0;i<N 2;i++)
{printf ("%d",a[i]);}
printf("\n");
}



[ 本帖最后由 aaa度 于 2011-8-26 13:17 编辑 ]
搜索更多相关主题的帖子: 学习 include return 
2011-08-26 13:07
jcw08120110
Rank: 8Rank: 8
来 自:南京
等 级:蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
收藏
得分:12 
第一个
程序代码:
#include<stdio.h>
#include<string>
char *ss (char *s)
{
    return s+strlen (s)/2;//这里的s是指针指向“abcdergh”这个字符数组的首地址;
                          //s+1就是指向从"bcdergh"开始的字符数组;
                          //这里的strlen(s)就是字符数组的长度这里是8;8/2=4;
                          //所以就是 s+4;那就是指向 "ergh"的指针;
}
void main ()
{
    char *p,*str="abcdergh";
    p=ss(str);
    printf("%s\n",p);
}

第二个:
程序代码:
#include<stdio.h>
#include<string>
void main()
{
    char s[]="159",*p;
    p=s;
    printf("%c",*p++);//这里实际意思是 printf("%c",*p);p++;这里是先输出然后移动
    printf("%c",*p++);
}
//如果你想输出59;可以把上面两句话改成printf("%c",*(++p))
//这里的意思就是先将指向移动后再输出;

第三个:
程序代码:
#include<stdio.h>
#include<string>
main()
{    char s[]="abcd",*p;
    for(p=s+1;p<s+4;p++) //这里s是指针;s+1就是他指向“bcd”而不是开始的“abcd”
        // s赋值给p指针;然后每次循环p++;就变成 “cd”和“d”;
        printf("%s\n",p);//这里s的特殊意思是 输出字符串的意思;
}

第四个:
程序代码:
#include<stdio.h>
#include<string>
#define N 8
void fun (int *x,int i)            
{
    *x=*(x+i);
}/*这个函数 是void无返回值;就是他不返回一个值;为什么呢? 因为这里传递的是指针fun (int *x,int i)
如果一个函数传递的是指针的话、那么在函数内部就能改变指针所指向的元素;而不要返回什么东西
一般一个函数我们希望他能返回一些数据 或者 改变一些数据 这里这个函数的意思就是改变了a这个数组内
的元素值又因为他传递的实参是指针是指向这个数组的地址 所以函数内部对数组的操作都是实实在在作用在数组内部的
而不会因为 函数的传递而丢失;所以这里就没有必要传递回一些数据给调用这个函数的main()了;*/
void main()
{
    int a[N]={1,2,3,4,5,6,7,8},i;
    fun (a,2);
    for(i=0;i<N;i++)
    {
        printf ("%d",a[i]);
    }
    printf("\n");
}

君生我未生 我生君以老
2011-08-26 15:05
Luminal
Rank: 6Rank: 6
等 级:侠之大者
帖 子:140
专家分:470
注 册:2011-8-24
收藏
得分:8 
你好aaa度:
   首先,你的这些问题,你自己都是可以解答的,如果你有仔细的踏实的从基础知识学起!
   第二,如果你是为了做题而做题,为了达到某种快速过关考试的目的的话,我想你不要学了
        直接背答案更直接一点!
   第三,问题不在于大与小,难与易,如果书本上已经写的很清楚,并且是在编程时经常用到的
        你把他作为问题提出,是没人愿意回答的!
  第四,遇到问题要先自己努力去想办法去解决,回想以前所学的,写测试程序,看书,百度等等有
很多的途径.通过自己努力得到的知识是不会轻易被忘掉的!
   请楼主要明白,我是没有恶意的,希望你能正确理解.
你的问题:
   1.strlen()是个标准库函数 ,求字符串长度的,关于他的用法,一般的教材上都有介绍;
   2.printf("%c",*p++);printf("%c",*p++);,看来你对*p是取指定内存里的值已经理解了,
而对p++还没有理解,这里涉及一个是先取值而后++;还是先++,然后取值的问题;
 测试:int a=1;
      int b=0;
      b=a++;
      printf("b=a++; b=%d\t a=%d\n",b,a);
      b=++a;
      printf("b=++a; b=%d\t a=%d\n",b,a);
在遇到一些一下子想不明白的问题时,不妨先自己针对这个问题写个简单的,单一话的小测试程序,通过简单测试
很多疑问,甚至是程序中的错误都会很快解决的!
     3.for (p=s+1;p<s+4;p++) printf("%s\n",p);} s的值怎么个意思??
这里有2个s,问题所指不清!如果试问printf()里面的那个%s的话,建议去研究一下printf()的输出格式问题!
如果是前面的s的话,在本程序中s是数组s[]="abcd"名字,s所指向的内存地址就是数组s[]的首元素所在的地址
有点绕(鄙视自己一下,语言表达能力太差).即这里的s<==>&s[0]是等同的.
p=s+1;
相当于 p<==>&s[0]+1<===>&s[1];
注:&取地址操作符,教材上有讲的.
4.void fun (int *x,int i)              void 无返回值什么意思?
无就是没有的意思, 无返回值就是没有返回值的意思
这块在关于函数的有关章节有讲的,说白了,就是当我们确定不需要从函数中返回任何值时,就可以把该
函数定义成viod的类型!比如我们写个myprint()这样的函数,因为我们只想输出我们想要的结果,其他的
对我们没有用,这时就可以考虑这样定义函数了:
void myprint(int x,int y){
    printf("x=%d \t y=%d\n",x,y);
}

希望啰嗦了这么多对楼主有帮助!
2011-08-26 16:23
aaa度
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-4
收藏
得分:0 
回复 2楼 jcw08120110
很感谢你的详细的解说,
2011-08-27 22:50
aaa度
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2011-8-4
收藏
得分:0 
回复 3楼 Luminal
嗯嗯 好的 我发现c不错 好好的学它
2011-08-27 22:51
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
收藏
得分:0 
不错谢谢分享

Discuz!  
好好学习  天天向上
2011-08-28 16:05
快速回复:请教一些学习中的问题?
数据加载中...
 
   



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

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