作业题,求助
设有如下定义:intarr[]={6,7,8,9,10};
int*ptr;
则下列程序的输出结果为______。
ptr=arr;
*(ptr+2)+=2;
printf("%d,%d\n",*ptr,*(ptr+2));
这题的程序是什么意思 啊 本帖最后由 jackz007 于 2020-12-25 11:40 编辑
* (ptr + 2) 就是 arr
*(ptr+2)+=2;
就是
arr = arr + 2
同理
printf("%d,%d\n",*ptr,*(ptr+2));
就是
printf("%d,%d\n",arr,arr);
最后,会打印出 arr、arr 的值,整数 6 和 10 。 #include<stdio.h>
int main()
{
intarr[] = { 6,7,8,9,10 }; // 定义数组并赋初值
int*ptr; // 定义指针变量
ptr = arr; // 将数组的首地址赋给指针
*(ptr + 2) += 2; // 指针指向第2个元素的值再加2,即 *(ptr + 2) = *(ptr + 2) + 2
printf("%d,%d\n", *ptr, *(ptr + 2)); // 输出 6,10
}
页:
[1]