C 此程序输出应为11

C 此程序输出应为11,c,C,在这种情况下,o/p为11,11,但第一个程序基于此概念。请帮助?只有在定义和初始化指针后,指针算法才可能实现。现在让我解释一下: 假设有一个由5个元素组成的数组 int *p; int i; p=&i; *p=11; printf("%d%d",i,*p); 假设intArray的起始地址是2000。现在intArray+3在这里意味着什么?这意味着intArray+3现在指的是数组intArray的第四个元素3,也就是说,现在它指向位置2012,因为数组名可以用作指向其第一个元素的

在这种情况下,o/p为11,11,但第一个程序基于此概念。请帮助?

只有在定义和初始化指针后,指针算法才可能实现。现在让我解释一下:

假设有一个由5个元素组成的数组

int *p;
int i;
p=&i;
*p=11;
printf("%d%d",i,*p);
假设intArray的起始地址是2000。现在intArray+3在这里意味着什么?这意味着intArray+3现在指的是数组intArray的第四个元素3,也就是说,现在它指向位置2012,因为数组名可以用作指向其第一个元素的指针,假设一个int类型在一台计算机上占用4个字节。当您在其前面放置*运算符时,它将取消引用该位置的值,即,*intArray+3将为您提供存储在位置2012的值,该值相当于intArray[3]。
由于您既没有将intArray声明为指针的指针,也没有将其初始化为数组,因此无法取消对intArray+3的引用。这是无效的,程序将无法编译

欢迎来到堆栈溢出。请尽快阅读这一页。由于许多原因,您展示的C代码将无法编译。提问前请提供可编译代码-请参阅如何创建SSCCE。如果intArray为int const*类型,则无法更改地址。
int *p;
int i;
p=&i;
*p=11;
printf("%d%d",i,*p);
int intArray[5];