| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 433 人关注过本帖
标题:请教一下,还是指针问题。
只看楼主 加入收藏
mashrb
Rank: 2
等 级:论坛游民
帖 子:47
专家分:29
注 册:2010-6-30
结帖率:76.92%
收藏
已结贴  问题点数:10 回复次数:3 
请教一下,还是指针问题。
#include "stdio.h"

void nullint(char **,char *);
void nullint(char **ca,char *cpa)
{
   
   ca=&cpa;    /*---------*pa=cpa---------*/--------/*这两句有区别吗?*/
   
}


int main(){

char ca[]="Loveyou";  
char *cpa="Loveme";
nullint(&ca,cpa);

getch();

}


请问!!看起来好像是没区别的,但我运行之后就是不一样,不知道是为什么!
搜索更多相关主题的帖子: 指针 
2010-07-10 22:10
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:353
专家分:222
注 册:2006-4-11
收藏
得分:5 
记住函数的参数是传值而不是传址的,看看下面这个程序就明白了
void nullint(char **ca,char *cpa)
{
   printf("%08x, %08x\n", *ca, cpa);
   printf("%08x, %08x\n", ca, &cpa);
   ca=&cpa;   
   
}


int main()
{

    char ca[]="Loveyou";  
    char *cpa="Loveme";
    printf("%08x, %08x\n", ca, cpa);
    printf("%08x, %08x\n", &ca, &cpa);
    nullint(&ca,cpa);
   
    getch();

}


2010-07-10 22:42
hao0716
Rank: 4
等 级:业余侠客
威 望:1
帖 子:353
专家分:222
注 册:2006-4-11
收藏
得分:0 
哦,sorry~~我看岔了
应该说是由于ca是指向"Loveyou"的指针,而ca本身又是一个一维数组,所以&ca里面的值就是ca的值
这个是和cpa这个指针本质的区别
所以在nullint中第一次打出来的值是把"Loveyou"强制转换成int的值,在windows上以小端法显示就是65766f4c
呵呵,确实是有些绕

2010-07-10 22:54
Cc丶
Rank: 2
等 级:论坛游民
帖 子:71
专家分:53
注 册:2010-7-9
收藏
得分:5 
第一个是ca这个2级指针存储cpa这个一级指针的地址  
第二个是ca这个2级指针存储cpa这个一级指针所存储的变量的地址
2010-07-11 14:43
快速回复:请教一下,还是指针问题。
数据加载中...
 
   



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

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