游戏开发论坛

 找回密码
 立即注册
搜索
楼主: majia775

指针很难理解吗,什么好多人说指针难?

[复制链接]

1

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-10-11 15:41:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

to DreamSnow:
谢谢。
要说明的是第一个问题不要使用new的。要使用malloc()的且不是数组只要整数类型既可。请指教:

1、分配50个整型数的内存空间的语句

int *p;

p=                 ; // 这个空该怎么填?

再等。

1

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-10-11 15:50:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

还是TO DreamSnow:

float * * newbalance;
是指:定义一个指向float类型指针的指针

您的意思是:
  newbalance 是指向浮点数的指针吗?望指教!

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-10-11 16:20:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

举个例子来说吧!
float A;
float *pA = &A;
float **ppA = &pA;

也就是说*pa等价于A ;而*ppA等价于pA;而 **ppA等价于*pA,等价于A。换句话说,ppA中保存的是pA的内存地址,pA中保存的是A的内存地址。这回应该明白了吧?

1

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-10-11 16:29:00 | 显示全部楼层

Re: Re:指针很难理解吗,什么好多人说指针难?

DreamSnow: Re:指针很难理解吗,什么好多人说指针难?

举个例子来说吧!
float A;
float *pA = &A;
float **ppA = &pA;

也就是说*pa等价于A ;而*p...


你的这个例子我已经明白了。谢谢!

但我上一个帖子里写的意思就是你所理解的意思吧?

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-10-11 16:44:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

"newbalance 是指向浮点数的指针吗"

我觉得说得不是很准确,事实上newbalance(ppA)可以指向一个浮点数(A),但是是通过另外一个指向浮点数的指针(pA)来指向这个浮点数(A)的,所以确切的说,newbalance是指向一个浮点数指针的指针,而不能简单地说newbalance 是指向浮点数的指针,毕竟有两个"*"嘛!

1

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-10-11 17:12:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

第2个已经明白。第1个问题你能用malloc()实现的写一个给小弟吗?

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-10-11 17:21:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

据说malloc()不符合面向对象程序设计思想,所以在C++中并不提倡使用,我也没怎么用过,记得好像是这么用的:
p=(int *)malloc(50);

建议你还是使用new和delete吧,符合发展趋势。也比较安全,不容易产生内存泄漏!

1

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-10-11 19:54:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

没有办法项目里要用。

你给出的p=(int *)malloc(50);肯定不对。还有谁知道吗?不是吧,有楼上的很多说指针容易的高人怎么都答不出来呀!

20

主题

398

帖子

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2005-10-11 20:41:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

4个动态存储分配函数的原型如下:

void * calloc (unsigned n, unsign size);
分配n个数据项的内存连续空间,每个数据项的大小为size。

void free(void *p);释放空间。

void *malloc(unsigned size);分配size字节的存储区。

void *realloc(void *p, unsigned size);更改已分配内存区的大小。

我刚才写的确实不对,你自己照着函数原型研究一下吧,这个我查书了,肯定没有错误了!

1

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-10-12 07:38:00 | 显示全部楼层

Re:指针很难理解吗,什么好多人说指针难?

各位说指针容易的高人能否使用指针实现一个简单的4则计算器(200行左右),让大家看看各位高手的水平?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-28 03:05

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表