| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 853 人关注过本帖
标题:函数指针传递问题
取消只看楼主 加入收藏
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
结帖率:86.67%
收藏
 问题点数:0 回复次数:4 
函数指针传递问题
typedef struct
    
      int last;
    }sqlist;

void changesqlist(sqlist *L)     
{
   L->last=10;
}


如上所示代码,我在主程序调用changesqlist函数,请问通过传递L这个指针,能不能将last改为10???
搜索更多相关主题的帖子: 函数 指针 
2010-03-04 19:26
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 
恩,因为,最近遇到了类似的提,搞得我云头转向的,呵呵,迷糊了,所以来确认下! 谢谢!
2010-03-04 20:17
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 
还有我问下,如下代码
main()
{ int * p;
  changenum(p);
}
如上定义了指针p,但是没有指向任何空间,直接用作参数在changenum函数中,这样是不是编译通不过的啊?? 为什么??
2010-03-04 20:20
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 
#include<stdio.h>
typedef struct
 {
 int last;
 }sqlist;

void changenum(sqlist *L)
{
  L->last=10;
  printf("%d",L->last);
}
main()
{ sqlist * p;
 changenum(p);
   p->last=11;
  printf("%d",p->last);

}




如上程序,我运行了下输出了1011,那请问,这个p不是没有分配空间么,怎么给last赋值了11,还输出了11呢?还有我将p->last=11;删除后也能输出10的!
在changenum函数传递时到底发生了什么事啊?函数到底执行了没?在函数中的L->last=10;执行时就没有出没有问题吗,不是也没有分配空间吗??
到底怎么回事啊,搞不清楚了。。。
2010-03-11 18:48
wingfeng
Rank: 2
等 级:论坛游民
帖 子:292
专家分:10
注 册:2008-12-12
收藏
得分:0 
看来好像是软件的编译器的问题,一定是编译器的问题!
2010-03-14 10:17
快速回复:函数指针传递问题
数据加载中...
 
   



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

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