一个数组指针的下标和一个一维数组的下标不一致,那这个指针还可以指向这个数组吗?
本帖最后由 老坚果 于 2019-11-5 17:37 编辑一个数组指针的下标和多维数组的下标不一致,那这个指针还可以指向这个数组吗?如果可以的话要怎么做?如果不行的话为什么不行? 本帖最后由 bin554385863 于 2019-11-5 21:58 编辑
老坚果 发表于 2019-11-5 21:49
类型不统一指的是int char 这样的类型吗?还是说是 int long'int这样的类型啊?还有就是您说的
隐式转 ...
指针的类型不统一,编译器是不会为你隐式转换的
int a;--->指针类型为int***;
int b;--->指针类型为int**;
int *ptr;--->ptr是一个一维数组的指针
a是三维数组,b是二维数字,要用ptr指向它们,必须强制转换类型为(int *); 你问的问题就不成立,
你先弄清楚,指针有了下标代表 什么?
指针没有指向数组,你凭什么用指针和下标去访问数组元素? 本帖最后由 秃子舰长 于 2019-11-5 18:45 编辑
我不太懂你的意思,我只知道指针数组这个东西,不知道还有数组指针。
指针数组是有一堆指针组成的一个数组,指针数组的每个元素都是一个指针,至于是什么类型的指针,那要看你怎么定义的了。
如果你说的数组指针是指向数组的一个指针的话,那它的下标与能不能指向对象没啥关系,它的下标仅仅只是它在指针数组里的位置而已。
bin554385863 发表于 2019-11-5 18:13
你问的问题就不成立,
你先弄清楚,指针有了下标代表 什么?
指针没有指向数组,你凭什么用指针和下标去访问 ...
我知道啊 指针的下标相当于这个指针没变化一次的跨度 应该是这样没错 我的意思是像这样
<(*p)>
的数组指针,是不是可以指向
<array>
或者
<array>
这样的数组? 老坚果 发表于 2019-11-5 21:15
我知道啊 指针的下标相当于这个指针没变化一次的跨度 应该是这样没错 我的意思是像这样
的数组指针, ...
动手写下代码不就知道行不行了
int main(int argc, char const *argv[])
{
int arr = {{0}, {0}, {0}};
int arr1 = {{{0}, {0}, {0}}, {{0}, {0}, {0}}, {{0}, {0}, {0}}};
int *ptr = (int *)&arr;
for (size_t i = 0; i < 9; i++)
{
std::cout << ptr << " ";
}
std::cout << std::endl;
int *ptr1 = (int *)&arr1;
for (size_t i = 0; i < 27; i++)
{
std::cout << ptr1 << " ";
}
return 0;
}
------------------------------------------------------------------
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
尝试新的跨平台 PowerShell https://aka.ms/pscore6
PS E:\Users\admin\Documents\VScode> & 'c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-ciemrptt.dcy' '--stdout=Microsoft-MIEngine-Out-nazbil4p.axr' '--stderr=Microsoft-MIEngine-Error-be3vs5wi.dpx' '--pid=Microsoft-MIEngine-Pid-jah0530g.dsj' '--dbgExe=D:\MinGW\bin\gdb.exe' '--interpreter=mi'
0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
PS E:\Users\admin\Documents\VScode> bin554385863 发表于 2019-11-5 21:28
动手写下代码不就知道行不行了
------------------------------------------------------------------ ...
我有试过写 但是报错说指针不兼容 而您写的代码我可能还没学到或者是别的什么的原因 我有些看不懂 老坚果 发表于 2019-11-5 21:38
我有试过写 但是报错说指针不兼容 而您写的代码我可能还没学到或者是别的什么的原因 我有些看不懂
不兼容是因为类型不统一;
通常情况下编译器会隐式转换类型,但是这种情况需要强制转换类型,至于怎么转换,等你学到了就会了 bin554385863 发表于 2019-11-5 21:45
不兼容是因为类型不统一;
通常情况下编译器会隐式转换类型,但是这种情况需要强制转换类型,至于怎么转 ...
类型不统一指的是int char 这样的类型吗?还是说是 int long'int这样的类型啊?还有就是您说的
隐式转换类型是指的同类型之间长度的转换是无所谓的吗?还是说别的什么啊?
页:
[1]