鱼C论坛

 找回密码
 立即注册
查看: 2246|回复: 4

指针的问题, 求指教

[复制链接]
发表于 2011-12-9 21:58:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zjxy2545 于 2011-12-10 09:11 编辑

#include <stdio.h>

void main()

{
        char *name[] = {"abcd","bcdf","cdef","decd"};
        char **p;
        int i;                                                这一句*P指向指针的内容,那*name照理也是指向内容,但是为什么就是打印乱码呢?
        for(i = 0; i < 4; i++)                                                   ∨
        {                                                                                ∨
                p = name + i;           问题1: 为什么写成《*p = *name + i》;就会出错。无法打印
                printf("%s\n", *p);    问题2: 为什么*p写成p就会打印乱码。
        }                                             问题3: 有时候定义完指针, 但是赋值的时候为什么要
}                                                                          去掉指针前的*号。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-9 22:47:30 | 显示全部楼层
1.p是指针,它的值是name【0】的地址,*p是指name【0】的内容也就是abcd。
2.上面解释过了。
3.比如int *p 是定义了一个指向int型的指针p,而后面用到的p指的是指针,*p指的是p所指向的一个地址单元的内容,这里指的就是abcd。还有数组名和指针的关系:name指的是数组第一个位置的地址。这里的p也是指的该数组第一个位置的地址。
建议你好好把指针那块看下
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2011-12-10 08:19:34 | 显示全部楼层

谢谢你。。。   看,我也天天在看,指针是有点难度。  但是有些问题没有人指点一下你是想不明白的。  如果你都能想明白那要老师何用?  
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-10 12:07:07 | 显示全部楼层
不是 P指向的是数组name【0000】的地址  你在去看看数组这一课 name+i 就不是了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-10 13:19:05 | 显示全部楼层
还不会打错*啦
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-9 23:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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