include <stdio.h> main(){ int a[10]={0,1,2,3,4,5,6,7,8,9};int* p=&a;// 这里要将指针指向数组第一个元素,也可以写成&a[0]for(i=0;i< 10;++i) //n长度的数组有效域为0~n-1,这里改成++i这样汇编会将1直接加到存i变量的寄存器上运行更快 { printf("%d\t",*(p+...
p=a;相当于 int a[10]={0,1,2,3,4,5,6,7,8,9};int p;//定义p为执行int的指针变量 p = a;//a为数组名,代表数组的起始地址 A、p的值是一个地址(数组a的起始地址),所以p-a = 0,那么a[p-a]相当于a[0]B、a[i]是数组的一个元素,&a[i]是数组的元素的地址,*(&a...
十六进制加法和十进制加法类似,满16进1。194+12,最低位4+2=6,次低位9+1=a(相当于十进制的10)。另外想确认一下,楼主使用的机器int型是2个字节大小吗?
答案是D,D的正确形式应该为:*(a+i)前面多了个星号。A:a[0]B: a[i]C: p[i]答案
(p+2)就是先把P指向的地址后移两个单位,P初始化指向a数组首地址,后移两个单位后即 a[2]= 3 ;答案
include<stdio.h>int main(){int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a,*q=a+9,t; for(;p<q;p++,q--) {t=*p;*p=*q;*q=t;} for(p=a;p<a+10;p++) printf("%d ",*p); return 0;}
<code> int main(void){ int arr[SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int *p;int prev, next;</code> 然后,我们声明一个指针变量p,并使其指向数组a中的第六个元素。这可以通过取地址操作符&实现。<code> p = &arr[5];</code> 接下来,我们需要获取p指针前一个...
main(){ int a[]={1,2,3,4,5,6};int *p;p=a;printf("%d ",*p); //数组a第一个元素是什么,是:1 printf("%d ",*(++p));//第2个元素是什么,是:2 printf("%d ",*++p); //第2个元素自增1是什么,是:3 printf("%d ",*(p--));//还是问第2个元素是几...
选择 Bint a[][4] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};相当于int a[][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 0, 0}};而 int * p = *(a + 1);表明 p 此时指向 5 所以要想输出9, p 需要 += 4;剩下就是 * 和 ++ 优先级的...