| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 375 人关注过本帖
标题:应用指针时候遇到几个问题;
取消只看楼主 加入收藏
sulang123
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-2-4
结帖率:42.86%
收藏
已结贴  问题点数:20 回复次数:1 
应用指针时候遇到几个问题;
第一个问题:
int main(int argc, char *argv[])
{
    int num[SIZE];
    int i;
    int *p;
    p=num;                      这样对数组进行赋值是没有问题的
    for (i=0;i<SIZE ;i++)
    {
        *(p+i)=i+1;            问题是我循环体改成*p=i+i; 赋值却出了问题???这是为什么呀
                                                                      p++;  
    }

   return 0;
}

第二个问题:做一个统计字符串长度的函数
#include <stdio.h>

int main(int argc, char *argv[])
{
    int calculation(char *p);
    char ch[5];
    char *p;
    p=ch;
    gets(ch);//输入字符串
    /*如果使用scanf()就是不能接受换行符*/
    printf("%d",calculationg(p));//打印出字符串长度

    return 0;
}
int calculation(char *p)//统计字符串长度的函数
{
    int i=0;
    while (*p!='\0')
    {
        p++;//输入的字符串长度超过了数组的大小,却依然可以得出正确的结果,这是怎么回事呀?
        i++;


    }
    return i;
}
第三个问题是:
#include <stdio.h>

int main(int argc, char *argv[])
{
    char *ch[2]={"ab","cd"};
    printf("%c",*ch[0]); \\代码到这里执行没有问题的
    *ch[0]='e';//到这里以后就出错了,我想知道为什么呀???   我测试的方法的把代码分开进行测试
    printf("%c",*ch[0]);
    return 0;
}
搜索更多相关主题的帖子: 字符串 return 统计 
2011-05-02 10:07
sulang123
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-2-4
收藏
得分:0 
嗯,我刚刚测试了一下,的确是这样的,如果用数组来输出就没有问题

还有一个办法就是for循环那里的代码弄成一个函数,把指针地址传给函数,然函数进行处理,这样下面的输出就没有问题了
2011-05-02 11:01
快速回复:应用指针时候遇到几个问题;
数据加载中...
 
   



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

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