| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 895 人关注过本帖
标题:请大家看看这个程序什么地方错了
只看楼主 加入收藏
hy7986918
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-15
收藏
 问题点数:0 回复次数:9 
请大家看看这个程序什么地方错了
请大家看看我的程序什么地方错了
大家也教教我字符数组指针的规则
#include<stdio.h>
int main(void){
    char str[]="abc";
    int i;
    int *p;
    p=&char *str[0];
    for(i=0;i<3;i++){
    str[i]=i;
    }
    
    for(i=0;i<3;i++){
        printf("str[%d]=%c\n",i,str[i]);
        printf("p=%p\n",p);
        printf("*p=%d\n\n",*p);
        p++;
    }
}
2008-12-15 22:07
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
#include<stdio.h>
int main(void){
    char str[]="abc";
    int i;
    int *p;
    p=&char *str[0] ;
    for(i=0;i<3;i++){
    str[i]=i;
    }
   
    for(i=0;i<3;i++){
        printf("str[%d]=%c\n",i,str[i]);
        printf("p=%p\n",p);
        printf("*p=%d\n\n",*p);
        p++;
    }
}

------------------------------------

    把红色部分删除就可以正常运行了。不过我没明白这个程序到底要做什么?既然要重新赋值,为什么还要赋初值呢?奇怪中……
2008-12-15 22:44
hy7986918
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-15
收藏
得分:0 
还是运行不了郁闷   不知道为什么    !!!
2008-12-16 00:38
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
改为:p=str;

    如果还不能运行,请说明到底是不能运行,还是没有输出窗口?并问一下:您用的是什么编译器?
2008-12-16 01:14
hy7986918
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-12-15
收藏
得分:0 
回复 第4楼 广陵绝唱 的帖子
ok了 我自己弄完了 谢谢啊  
 我用的是  cygwin

我的程序
#include<stdio.h>
int main(void){
    char str[]="abc";
    int i;
    char *p;
    
    p=str;
    
        for(i=0;i<3;i++){
        printf("str[%d]=%c\n",i,*p);
        printf("p=%p\n",p);
        printf("*p=%c\n\n",*p);
        p++;
    }
}

実行結果
Administrator@HTTP-74FB9665DE /home/program/11m
$ gcc 11m3.c

Administrator@HTTP-74FB9665DE /home/program/11m
$ ./a.exe
str[0]=a
p=0x22ccc8
*p=a

str[1]=b
p=0x22ccc9
*p=b

str[2]=c
p=0x22ccca
*p=c
2008-12-16 02:07
ssdnsse
Rank: 1
来 自:福建
等 级:新手上路
帖 子:550
专家分:0
注 册:2008-12-14
收藏
得分:0 
路过问下
这是输出什么的?
很奇怪的输出

...指针不指向我了   0.0
2008-12-16 09:17
boliyuan
Rank: 1
来 自:四川南充
等 级:新手上路
帖 子:59
专家分:2
注 册:2007-6-26
收藏
得分:0 
回复 第6楼 ssdnsse 的帖子
str[0]=a
p=0x22ccc8
*p=a

str[1]=b
p=0x22ccc9
*p=b

str[2]=c
p=0x22ccca
*p=c
这些才是输出哈!前面的就像你在linux下面调试的时候前面也会有[root@localhost root]#一样
好好看下吧!呵

只要开心就好!
2008-12-16 10:12
海灵儿
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-6-20
收藏
得分:0 
请问一下,这个p=%p是求什么的,内存地址?是用%p的格式?
2008-12-16 12:55
快速回复:请大家看看这个程序什么地方错了
数据加载中...
 
   



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

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