鱼C论坛

 找回密码
 立即注册
查看: 1137|回复: 7

[已解决]小白求助 关于数组指针的定义

[复制链接]
发表于 2020-3-5 17:41:41 | 显示全部楼层 |阅读模式

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

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

x
int(*pMyArray)[5]定义了一个指向数组的指针 pMyArray  指向的数组是5个元素 数组类型是int[5]
pMyArray = &arr3
为啥nt arr3[5];改成nt arr3[10];都可以使用?
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

void main()
{
        int i;
        int(*pMyArray)[5];//直接定义一个指向数组的数组指针变量
        int arr3[5];//这个数组有5个元素
        pMyArray = &arr3;
        for (i = 0; i < 5; ++i)
        {
                (*pMyArray)[i] = i + 1;
        }
        for (i = 0; i < 5; ++i)
        {
                printf("%d ", (*pMyArray)[i]);
        }
        system("pause");
}
最佳答案
2020-3-5 21:13:35
对 pMyArray 而言,它就是一个指针变量,或者说它就是一个int* 的指针,谁赋值给它,它就代表谁
就好像
int a=1
后来a=2
请问,a能=2吗?可以
那int能干的时候,int*不能干?
和尚摸得,我摸不得?哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-5 17:47:58 | 显示全部楼层
那你觉得为什么会报错呢?
小甲鱼老师讲过:
当数组的范围过大时,剩下的空间将被
'\0'代替
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-5 21:13:35 | 显示全部楼层    本楼为最佳答案   
对 pMyArray 而言,它就是一个指针变量,或者说它就是一个int* 的指针,谁赋值给它,它就代表谁
就好像
int a=1
后来a=2
请问,a能=2吗?可以
那int能干的时候,int*不能干?
和尚摸得,我摸不得?哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-6 12:47:08 | 显示全部楼层
4goodworld 发表于 2020-3-5 21:13
对 pMyArray 而言,它就是一个指针变量,或者说它就是一个int* 的指针,谁赋值给它,它就代表谁
就好像
i ...

谢谢大佬了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 12:13:55 | 显示全部楼层
4goodworld 发表于 2020-3-5 21:13
对 pMyArray 而言,它就是一个指针变量,或者说它就是一个int* 的指针,谁赋值给它,它就代表谁
就好像
i ...

int(*pMyArray)[5]那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArray 等于别的数组名,就是把指向的空间给改变了?
还有 为啥pMyArray = &arr3;  pMyArray 为啥是二级指针呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 14:25:26 | 显示全部楼层
琴长不过时光 发表于 2020-3-8 12:13
int(*pMyArray)[5]那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArr ...

int(*pMyArray)[5]那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArray 等于别的数组名,就是把指向的空间给改变了?

我个人的观点,指针的用来表示某个内存地址,数组的读取是通过数组的首地址来偏移操作的,地址=地址,有啥问题?

还有 为啥pMyArray = &arr3;  pMyArray 为啥是二级指针呀?
pMyArray 如果它是一级的话,arr3是几级?&arr3 这个取地址操作后的地址是什么呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 17:07:47 | 显示全部楼层
4goodworld 发表于 2020-3-8 14:25
int(*pMyArray)[5]那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArr ...

好的谢谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-8 17:10:36 | 显示全部楼层
4goodworld 发表于 2020-3-8 14:25
int(*pMyArray)[5]那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArr ...

太感谢你了 我弄明白了  数组名arr3是一级指针 然后 取地址 就是二级指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 00:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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