鱼C论坛

 找回密码
 立即注册
查看: 1994|回复: 15

[已解决]C语言带你飞视频p23指针数组疑问

[复制链接]
发表于 2021-2-2 12:27:26 | 显示全部楼层 |阅读模式

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

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

x
这个视频中的这个指针数组没看懂,这个里面给*pl【5】赋值,这个我理解是给一个数组地址赋值,这个视频中这个代码的指针没看到赋值地址,那么只有指针地址,没明白这个数组中指针的意义在哪。
最佳答案
2021-2-2 23:31:36
晓晓坤 发表于 2021-2-2 17:20
你好!你的意思是说系统还是自动分配了指针地址和字符串地址两个,还是只有一个地址呢·是否像普通指针变 ...

什么叫“还是”?什么叫“两个”?什么叫“还是只有一个地址”?这里有5个字符串,一个字符串,又有多个字符,而每一个字符,就占一个数组元素,也就是一个地址
QQ图片20210202122044.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-2 14:02:04 From FishC Mobile | 显示全部楼层
我早上刚看到这儿,也没看懂,至今为止感觉数组和指针差不多是一个东西???但是小甲鱼说这俩不一样。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-2 14:28:39 | 显示全部楼层
指针毕竟是指针·得有个被指向的东西吧,我觉得所产生作用的对象还是要以地址为主·上面这个视频写的我就迷糊了·始终不明白字符串到底存在了哪里··数组像是固定的指针空间,结构比较固定·像是个指针做出来的产物·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 14:49:34 | 显示全部楼层
*pl[5] 定义的是一个指针数组,其元素值都是指针,分别指向 5 个字符数组的首地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-2 15:07:37 | 显示全部楼层
风过无痕1989 发表于 2021-2-2 14:49
*pl[5] 定义的是一个指针数组,其元素值都是指针,分别指向 5 个字符数组的首地址

所指向的字符数组首地址不需要提前定义?直接赋值么?主要是你说的这个所指向的字符数组首地址在哪··你的意思是否是说视频中被赋值的5个字符串是指针地址的名字?字符串里面还有一个会被赋值的地址?然而上面这个式子还没有给指针数组赋值?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 15:42:02 | 显示全部楼层
晓晓坤 发表于 2021-2-2 15:07
所指向的字符数组首地址不需要提前定义?直接赋值么?主要是你说的这个所指向的字符数组首地址在哪··你 ...

定义了指针数组,系统会自动分配,无须你再定义
#include <stdio.h>
int main()
{
        char *pl[5] = {
        "让编程改变世界 -- 鱼C工作室",
        "Just do it -- NIKE",
        "一切皆有可能 -- 李宁",
        "水不止步 -- 安踏",
        "one more thing... -- 苹果"
        };
        int i;
        
        for (i = 0;i < 5;i++)
        {
                printf("%d\t", pl[i]);    //输出指针指向的地址
                printf("%s\n", pl[i]);
        }

    return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-2 17:20:47 | 显示全部楼层
风过无痕1989 发表于 2021-2-2 15:42
定义了指针数组,系统会自动分配,无须你再定义

你好!你的意思是说系统还是自动分配了指针地址和字符串地址两个,还是只有一个地址呢·是否像普通指针变量一样先有个普通的变量名·然后再有指针指向变量名·还是说这个指针就直接指向一个内存中系统分配的地址呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 17:52:59 From FishC Mobile | 显示全部楼层
这是个指针数组,char *是字符指针,是
C语言中字符串的实现方式,这个意思就是创建一个数组,存储一些字符串(字符指针)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 17:53:35 From FishC Mobile | 显示全部楼层
风过无痕1989 发表于 2021-2-2 14:49
*pl[5] 定义的是一个指针数组,其元素值都是指针,分别指向 5 个字符数组的首地址

字符指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-2 23:31:36 | 显示全部楼层    本楼为最佳答案   
晓晓坤 发表于 2021-2-2 17:20
你好!你的意思是说系统还是自动分配了指针地址和字符串地址两个,还是只有一个地址呢·是否像普通指针变 ...

什么叫“还是”?什么叫“两个”?什么叫“还是只有一个地址”?这里有5个字符串,一个字符串,又有多个字符,而每一个字符,就占一个数组元素,也就是一个地址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 10:40:07 | 显示全部楼层
风过无痕1989 发表于 2021-2-2 23:31
什么叫“还是”?什么叫“两个”?什么叫“还是只有一个地址”?这里有5个字符串,一个字符串,又有多个 ...

字符串是多个数组元素,多个地址这个我知道,我的问题并不是这个·只是学到了数组指针这里,我的理解是指针地址存元素地址,加*号指向元素地址,字符串数组是多个元素地址,但是是否每个元素地址都有一个指针地址储存的问题。还是没搞明白·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 10:43:07 | 显示全部楼层
晓晓坤 发表于 2021-2-3 10:40
字符串是多个数组元素,多个地址这个我知道,我的问题并不是这个·只是学到了数组指针这里,我的理解是指 ...

还是意思是说这个指针数组里面的每个元素都还是指针名,视频中的这些并没有给这些指针赋值地址呢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 10:55:55 | 显示全部楼层
晓晓坤 发表于 2021-2-3 10:43
还是意思是说这个指针数组里面的每个元素都还是指针名,视频中的这些并没有给这些指针赋值地址呢。

你的答案中我现在理解的就是pl【5】中存放着5个地址,是5个字符串的首个元素的地址。系统自动定义了这个5个字符串的位置,不需要提前定义,直接赋值。不知道我到底有没有搞懂是不是这么回事·
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-3 16:26:38 | 显示全部楼层
晓晓坤 发表于 2021-2-3 10:43
还是意思是说这个指针数组里面的每个元素都还是指针名,视频中的这些并没有给这些指针赋值地址呢。

指针数组里,每个元素都是指针(或者说是地址),它们分别指向5个字符串的首地址
指针数组.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-3 16:41:35 | 显示全部楼层
晓晓坤 发表于 2021-2-3 10:55
你的答案中我现在理解的就是pl【5】中存放着5个地址,是5个字符串的首个元素的地址。系统自动定义了这个5 ...

我想你是在纠结,这5个字符串数组的数组名吧?其实知道了这5个字符串数组的首地址,其数组有没有数组名对于编译器来说无关紧要,因为编译器在处理时并不需要数组名,而写出这个数组名是给程序人员看的,不是给编译器看的。编译器只须知道什么时候开始(首地址),什么时候结束(结束符或其他结束标志)即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-3 17:31:55 | 显示全部楼层
风过无痕1989 发表于 2021-2-3 16:41
我想你是在纠结,这5个字符串数组的数组名吧?其实知道了这5个字符串数组的首地址,其数组有没有数组名对 ...

谢谢!麻烦了还给了图,基本上能理解这个指针数组的逻辑,我再去研究研究他跟普通字符串数组有啥不一样,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-10 03:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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