为您找到"
若有定义语句:int a[4]={0,1,2,3},*p;p=&a[1];则++(*p)的值是
"相关结果约100,000,000个
4、首先*a[2]是一个指针数组就相当于一个二维数组(这个你可以看成是a[2][3]的二维数组),而**p=a就是把这个二维数组的首地址赋值给p 那么p现在指向了二维数组中第一个字符的地址(p现在指向了"one"首地址,现在指向了o)第一条输出语句:printf("%s",*(p++)+1);那么*(p++)就是先...
(*p+2)=a[0][0]+2=a[0][2]=5;(p+2)=a[2][0]=3;和是8,选D
A。p的类型是int *,a的类型是int (*)[10],类型不符,不能赋值。将确定的数值赋给变量的语句叫做赋值语句。各程序设计语言有自己的赋值语句,赋值语句也有不同的类型。所赋“值”可以是数字,也可以是字符串和表达式。
int *p;p = (int*)a;实际上此时p为一个指向整数的指针,其地址与a相同。此时: b = *((int*)a); 与 b= *p;是相同的值。一个整数是4个字节,而unsigned char a[4]也是四个字节,字符串存放顺序是从左至右依次存放,在内存中按字节从地到高,依次是:0 0 0 1 整数也是4个字节,...
我的结果是(每个电脑的结果有可能不一样):12ff58 12ff7c 你的程序应该是:include <stdio.h> void main( ){ int a[]={1,2,3,4,5,6,7,8,9,0},*p;p=a;printf("%x\n",p);printf("%x\n",p+9);} 程序注释:p指针指向数组a,那么p就是数组a的起始地址12ff58,那么p+9就是...
((ptr+1)[2])等价于*((ptr+1)+2),等价于*(ptr+3),这表示从数组a的首地址向后移动3个单位,每个单位为一个含有3个Int的数组,所以一共向后移动了9个单位,即得出运行结果10!要想正确表达a[1][2],应该是(*(ptr+1))[2],数组的运算符[ ]比间值运算符*的优先级高,(*(ptr+1)...
(p+2)就是先把P指向的地址后移两个单位,P初始化指向a数组首地址,后移两个单位后即 a[2]= 3 ;
(p+2)的值是4 验证代码如下:include <stdio.h>int main(){int a[5]={1,2,3,4,5},*p;p=a+1;printf("%d",*(p+2));return 0;}执行结果:原理如下:a+1是数组a[1]的地址 p=a+1就是指向a[1]的地址 因此后面p+2,就是指向a[3]的地址 (p+2)就是a[3]的值=4 ...
C.*p+2 没有一个是指向a[2]的,但C的结果是1+2=3
p=b,p指向b的首地址,*p++=*p,运算后加一;