小白求助 关于数组指针的定义
int(*pMyArray)定义了一个指向数组的指针 pMyArray指向的数组是5个元素 数组类型是intpMyArray = &arr3
为啥nt arr3;改成nt arr3;都可以使用?
#define _CRT_SECURE_NO_WARNINGS
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void main()
{
int i;
int(*pMyArray);//直接定义一个指向数组的数组指针变量
int arr3;//这个数组有5个元素
pMyArray = &arr3;
for (i = 0; i < 5; ++i)
{
(*pMyArray) = i + 1;
}
for (i = 0; i < 5; ++i)
{
printf("%d ", (*pMyArray));
}
system("pause");
} 那你觉得为什么会报错呢?
小甲鱼老师讲过:
当数组的范围过大时,剩下的空间将被
'\0'代替 对 pMyArray 而言,它就是一个指针变量,或者说它就是一个int* 的指针,谁赋值给它,它就代表谁
就好像
int a=1
后来a=2
请问,a能=2吗?可以
那int能干的时候,int*不能干?
和尚摸得,我摸不得?哈哈 4goodworld 发表于 2020-3-5 21:13
对 pMyArray 而言,它就是一个指针变量,或者说它就是一个int* 的指针,谁赋值给它,它就代表谁
就好像
i ...
谢谢大佬了 4goodworld 发表于 2020-3-5 21:13
对 pMyArray 而言,它就是一个指针变量,或者说它就是一个int* 的指针,谁赋值给它,它就代表谁
就好像
i ...
int(*pMyArray)那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArray 等于别的数组名,就是把指向的空间给改变了?
还有 为啥pMyArray = &arr3;pMyArray 为啥是二级指针呀? 琴长不过时光 发表于 2020-3-8 12:13
int(*pMyArray)那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArr ...
int(*pMyArray)那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArray 等于别的数组名,就是把指向的空间给改变了?
我个人的观点,指针的用来表示某个内存地址,数组的读取是通过数组的首地址来偏移操作的,地址=地址,有啥问题?
还有 为啥pMyArray = &arr3;pMyArray 为啥是二级指针呀?
pMyArray 如果它是一级的话,arr3是几级?&arr3 这个取地址操作后的地址是什么呢? 4goodworld 发表于 2020-3-8 14:25
int(*pMyArray)那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArr ...
好的谢谢了 4goodworld 发表于 2020-3-8 14:25
int(*pMyArray)那大哥 请问 这个pMyArray是不是定义了一个指向包含5个整数的数组指针变量
然后pMyArr ...
太感谢你了 我弄明白了数组名arr3是一级指针 然后 取地址 就是二级指针
页:
[1]