| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 590 人关注过本帖, 1 人收藏
标题:【交流】关于参数传递及修改问题
取消只看楼主 加入收藏
n0noper
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:39
专家分:159
注 册:2015-3-21
收藏(1)
 问题点数:0 回复次数:2 
【交流】关于参数传递及修改问题
程序代码:
#include <stdio.h>
#include <malloc.h>

//////////////////////////////////////////////////////////////////////////
//结构体定义
//////////////////////////////////////////////////////////////////////////
typedef struct Node{
    int iNum;                //各种成员。。。
    struct Node *pNext;        //下一个节点
}stNode, *pNode;


//////////////////////////////////////////////////////////////////////////
//说明:很多人会像如下一样进行参数传递
//////////////////////////////////////////////////////////////////////////
void Create(pNode p_pNode)    //不要说自己是void Create(struct Node* p_pNode)
{
    p_pNode = (pNode)malloc(sizeof(stNode));    //为p_pNode申请内存空间
    p_pNode->pNext = NULL;                        //指针赋值,防止"出轨"

    p_pNode->iNum = 10;            //纯粹为了演示
}

int main(void)
{
    pNode l_pNode = NULL;

    Create(l_pNode);        //很多人以为的创建

    printf("iNum  = %d\n", l_pNode->iNum);
    printf("pNext = %d\n", l_pNode->pNext);

    return 0;
}
/************************************************************************
刚来论坛没几天,但是看到很多人都是这么写程序(尤其最近很多人在学数据结构,链表操作)
好好理解一下指针:
void fun(int i);    //值传递,i是拷贝了一份给fun,调用fun时传递的变量没有改变
void fun(int *i);    //这里看你传过来的是什么
//如果是&i,那么就是传递了i的地址,可以进行任意修改操作
//如果是int *i中的i,那么对不起,你传递的是int*类型的一份拷贝,修改同样无效
//我知道很多人不服气,自己验证一下。
//学过汇编的人,一定能懂我的心 :)

如果你懂了,就绕行;初学者们,深入理解一下(不会太深):
有图有真相!
//Re:不会弄···打包吧。非美工,将就着看。
*************************************************************************/
//现在应该知道怎么写了吧?


有什么不同意见,大家一起讨论交流。
参数传递.rar (4.87 KB)
搜索更多相关主题的帖子: color 
2015-03-24 10:15
n0noper
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:39
专家分:159
注 册:2015-3-21
收藏
得分:0 
回复 3楼 孤独的守候
你完全理解错了我的意思。
我写这个目的,是现在论坛上很多人都在学链表,然后创建头结点的时候,就是这么创建,所以导致失败。
并且我前边也说过,这是错误的师范。
还有一点,你说传一个NULL指针做参数,严格说,这是错误的说法。看得出你应该不怎么熟悉反汇编,你也可以调试一下,单步进入内存区间看看。

不骄不躁,不卑不亢;虚怀若谷,宠辱不惊。
2015-03-25 21:36
n0noper
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:39
专家分:159
注 册:2015-3-21
收藏
得分:0 
回复 5楼 孤独的守候
没关系,你的精神值得我学习!对我们认为对的事情,敢言而且言之有理!这才是论坛,这才是技术交流!谢谢你,与君共勉!

不骄不躁,不卑不亢;虚怀若谷,宠辱不惊。
2015-03-26 08:04
快速回复:【交流】关于参数传递及修改问题
数据加载中...
 
   



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

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