【答案】:B 本题考查指向数组的指针,本题中指针变量P指向数组a,那么*P的值就是1,即表示数组的第一个元素,那么数值为9的表达式就是将指针向后移动8个地址,即P+8指向的是数组元素值为9,所以数值为9的表达式是*(P+8)。
typedef用法:1、用typedef为现有类型创建别名,定义易于记忆的类型名 2、typedef 还可以掩饰复合类型,如指针和数组。例如,你不用像下面这样重复定义有 81 个字符元素的数组:只需这样定义,Line类型即代表了具有81个元素的字符数组,使用方法如下:同样,可以像下面这样隐藏指针语法:typedef是在计算机编程...
【答案】:D D。【解析】字符在进行数学运算时取其ASCⅡ码值,其中'b'的ASCⅡ码值为98,‘d’的ASCⅡ码值为100,字符'2'的ASCⅡ码值为50。可知D选项中表达式c2-0的值为50。
具体详解如下:include <stdio.h> char *a="you";char b[ ]="welcome you to China!";int main(){ int i,j=0; char*p;for(i=0;b[i]!='\0';i++){ //使用for循环来遍历数组b if(*a==b[i]) //判断当前遍历到的b中字符b[i]与*a(即'y')是否相等 { p=a; //复制...
可运行下面的程序:include void main(){ char a[10]= {0};char p = a;char q = (char*)&a;q = 1;printf("a:d\n",a);printf("&a:d\n",&a);printf("*p:d\n",p);printf("*q:d\n",q);printf("a[0]:d\n",a[0]);printf("a[1]:d\n",a[1]);} 这里...
char p;scanf("%s",p);//p是指针,如果要存放字符的话,需要先分配空间给它...修改如下:include include int main(void){ char p;p=(char )malloc(sizeof(char));scanf("%s",p);// o:abc ,x:abcd ???printf("\n s",p);free(p);//记得 释放内存 ,(*^__^*)嘻嘻……return...
因为p+2指向a[2],然后+=2,所以a[2]的值变为E。p+1指向a[1],输出是从a[1]开始输出字符串,所以答案是 BEDE void
举个例子 include <stdio.h> void (*p)(int*,int*);// fun这个函数是返回void,参数是两个int *类型,//所以p可以代表这种函数 void fun(int *a, int *b){ printf("%d+%d=%d",*a,*b,*a+*b);} int main(){ int m=5,n=6;int *x=&m;int*y=&n;//p是fun这种函数类形的...
答案是 C) p+=2,*p++。关于P+=2指向的是数组的第二个元素,是因为p++操作在p+=2操作之后,它将指针偏移2个元素,也就是p最终指向数组a的第三个元素,即a[2],而*p++表示取出p所指向的元素并且p++,因此最终得到的结果是a[2]=3。单独的p指向的是数组a的第一个元素,即a[0]=1。
(*p)[4]定义的是一个指向一维数组的指针,这是一个指针,p++相当于p的地址相加了1*4 举例说明:include <stdio.h> void main(){ int a[2][2]={{1,2},{8,9}};int *p[4],(*q)[2];q=a;p[0]=&a[0][0];p[1]=&a[0][1];p[2]=&a[1][0];p[3]=&a[1][1];fo...