设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
大家是否可以讨论一下指针的指针?
1
2
/ 2 页
下一页
返回列表
查看:
1485
|
回复:
11
大家是否可以讨论一下指针的指针?
[复制链接]
shangxd
shangxd
当前离线
积分
106
IP卡
狗仔卡
发表于 2003-7-4 16:46:11
|
显示全部楼层
|
阅读模式
是否可以讲一下原理,在什么情况下用得比较多,如何灵活应用。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2003-7-4 17:40:14
|
显示全部楼层
原理上没有什么好说的。你有什么不清楚的就说出来,大家讨论讨论。
回复
支持
反对
使用道具
举报
显身卡
shangxd
shangxd
当前离线
积分
106
IP卡
狗仔卡
楼主
|
发表于 2003-7-4 19:48:24
|
显示全部楼层
有一个函数原形是char *call(char *p, char **arg, int *i)
是这样调用这个函数的call(p, args, &i)
p: char *p
args: char *args[30]
i: int i
中间一个参数是一个数组指针,怎么函数的中间是指针的指针?
而且在函数里面也有*arg++的语句。
不知道该怎么理解!
回复
支持
反对
使用道具
举报
显身卡
lordbyorn
lordbyorn
当前离线
积分
889
IP卡
狗仔卡
发表于 2003-7-4 23:10:26
|
显示全部楼层
不知道怎么说。
args 是数组名,因而是一个指针,数组内容是字符指针,因而args是指针的指针(但不是变量)
arg 是指针的指针,基类型是char
所以arg 可以是args的形参。
*arg++
*arg++ 等于 *(arg++)
设arg=args,则arg++ 等于 &args[1]
*(arg++) 等于 args[1]
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2003-7-4 23:13:17
|
显示全部楼层
char *arg是指针,char *arg[30]是有30个指针元素的指针数组。传递这个指针数组的地址要用&(*arg),如果要引用数组中的指针所指向的元素就是**arg。
回复
支持
反对
使用道具
举报
显身卡
viper
viper
当前离线
积分
443
IP卡
狗仔卡
发表于 2003-7-5 01:20:55
|
显示全部楼层
指向指针的指针,你在纸上画画,好好想想就转明白了。
回复
支持
反对
使用道具
举报
显身卡
EvilSeed
EvilSeed
当前离线
积分
149
IP卡
狗仔卡
发表于 2003-7-29 00:13:49
|
显示全部楼层
int val=3.14;
int *pi=val;
也许是我理解有问题。始终不明白这个东西。*pi是一个指针,那么pi的值是不是就是val这个值的地址啊?那么*pi=&val;这一句书上说的是把val的地址赋值给pi。我觉得这一句明明是把val的地址赋值给指针*pi嘛。不知道是我理解错了还是书错了。
所说的书就是版主推荐的《c++primer》第73页
回复
支持
反对
使用道具
举报
显身卡
libinary
libinary
当前离线
积分
1502
IP卡
狗仔卡
发表于 2003-7-29 01:59:45
|
显示全部楼层
你理解错了,
int *pi = &val; 是声明语句(也是定义),int * 是类型,pi是变量,= &val是初始化部分,因为pi的类型是int *所以应该用&val初始化pi,这里不能把*pi连起来看成是对pi解引用,应该把int *连起来看成是类型说明。
在一般语句中的*(如:*pi)是解引用操作符,在声明语句中的*是指针类型的说明符,不是一回事,C语言中有一些混淆的操作符,比如一般语句中的*也可能是乘号,这些要在上下文中注意一下。
回复
支持
反对
使用道具
举报
显身卡
XChinux
XChinux
当前离线
积分
131
IP卡
狗仔卡
发表于 2003-7-29 09:21:21
|
显示全部楼层
一个指针存放一个地址,那么指针的指针就存放 ”存放一个地址的指针 “的地址
回复
支持
反对
使用道具
举报
显身卡
EvilSeed
EvilSeed
当前离线
积分
149
IP卡
狗仔卡
发表于 2003-7-29 20:52:46
|
显示全部楼层
libinary:
理解了你的说法,但是如果按照你的说法来做的话那么在一个语句里面定义两个指针是不是这样呢:int* pt1,pt2;这样对么,好像不对吧。请指点一下。
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Ubuntu Linux 专题讨论
开源软件专题讨论
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表