鱼C论坛

 找回密码
 立即注册
查看: 1468|回复: 3

[已解决]学指针数组的时候遇到了个问题,有个语句不是很理解

[复制链接]
发表于 2019-10-20 00:11:20 | 显示全部楼层 |阅读模式

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

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

x
char *p[3]={"qwe","rty","uio"};

尽可能仔细的解释一下吧,刚学指针,可能比较多东西理解不来。
最佳答案
2019-10-20 02:16:45
先得理解一个东西,字符串和整型,浮点型等等不是一个数据类型,估计可能觉得说的是废话,
但是紧接着有个知识点是当我们打印引用(也就是地址)这些变量的时候,得到结果是不同的,
当我们打印整型地址的时候,输出是地址,当我们打印字符串地址的时候,输出不是地址了,是字符串,不仅仅不是地址,也不是地址对应那一个字符的值,而是整个字符。
下面再说指针数组:
首先它是个数组,从主宾关系上就能看出来,这个数组中每个元素都是地址,这个地址是字符串的地址,剩下的都好理解了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-20 01:29:18 | 显示全部楼层
本帖最后由 bin554385863 于 2019-10-20 01:46 编辑

这是一个含有三个元素为指针的数组,每个指针又指向一个字符串
相当于:
#include <iostream>
int main(int argc, char const *argv[])
{
    char str[3][4] = {"qwe","rty","uio"};
    char *p[3];
    for (size_t i = 0; i < 3; i++)
    {
        p[i] = (char*)&str[i];
        std::cout<<"p["<<i<<"] = "<<*(p+i)<<std::endl;
    }
    
    return 0;
}
---------------------------------------------------------------------------------
Microsoft Windows [版本 10.0.16299.1087]
(c) 2017 Microsoft Corporation。保留所有权利。

E:\Users\86184\Documents\Code>c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-tbdkvgpp.qyd --stdout=Microsoft-MIEngine-Out-aaz51oxl.xmu --stderr=Microsoft-MIEngine-Error-ihypjwgz.ucr --pid=Microsoft-MIEngine-Pid-qnrxlby4.21c "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi
p[0] = qwe
p[1] = rty
p[2] = uio


E:\Users\86184\Documents\Code>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-20 02:16:45 | 显示全部楼层    本楼为最佳答案   
先得理解一个东西,字符串和整型,浮点型等等不是一个数据类型,估计可能觉得说的是废话,
但是紧接着有个知识点是当我们打印引用(也就是地址)这些变量的时候,得到结果是不同的,
当我们打印整型地址的时候,输出是地址,当我们打印字符串地址的时候,输出不是地址了,是字符串,不仅仅不是地址,也不是地址对应那一个字符的值,而是整个字符。
下面再说指针数组:
首先它是个数组,从主宾关系上就能看出来,这个数组中每个元素都是地址,这个地址是字符串的地址,剩下的都好理解了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-20 07:15:41 | 显示全部楼层
这句就是错的.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-4 15:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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