*t为字符类型,我可以理解,因为定义时为char,我不理解为什么*(p+2)为指针类型,它定义的时候前面也是char呀。
我不理解为什么*(p+2)为指针类型,它定义的时候前面也是char呀。
追答t也是指针类型 跟你说的这个一样 不是字符类型
如果你理解什么是指针 就不难理解了
若有说明:char *pc[ ]={"aaa", "bbb", "ccc", "ddd"};,则以下叙述正确...
选B。pc[0]表示指向字符串“aaa "的指针,而*pc[0]是取该指针所指的内存地址内的数值,就是a。
.设char*p="abcd";,执行语句printf("%C",*(p+2));后的输出结果是...
设char*p="abcd";,执行语句printf("%C",*(p+2));后的输出结果是__%C__执行语句printf("%c",*(p+2));后的输出结果是__c__ (*p指针后移2个字符是'c')要记得C语言是大小写敏感的。
设有如下变量定义char aa[ ][3]={‘a’,’b’,’c’,’d’,’e...
char (*p)[3]我们可以可以看到p是指向一个有三个元素的字符数组的指针。那么当p++的时候,相当于跳过指向的数组。再来看一下,char aa[ ][3]={‘a’,’b’,’c’,’d’,’e’,’f’};我们可以发现aa是二维数组,而p指向的是一维数组。所以我们去分解aa让他变成两个一维数组 {‘a’,’...
...<stdio.h> main() { char **p,*t[]={"computer","phone","mp4"}...
p是指针的指针 t[]是字符串指针类型的数组
设有定义:char p[]={'1','2','3'},*q=p;以下不能计算出一个char型数据...
答案是A。A计算出来的是P这个数组的全部长度,也就是包含了3个char的长度,原因很简单数组名就是数组的首地址,也就是说,P是指向整个数组的指针,对它计算当然得到的是整个数组的长度,后面的几个答案,都取出了地址上的值,比如*q是第一个值,p[0]也是,sizeof(char)这个更不用说了,直接就是...
char *a[2]={"one","two"},**p=a;printf("%s",*(p++)+1);printf("%c...
char *a[2]={"one","two"}, \/\/a为指针数组,a[0]为"one"的首地址,a[1]为"two"的首地址。p=a; \/\/p为二级指针,初始化为(指向)数组a的首元素即a[0]printf("%s",*(p++)+1); \/\/(p++)先返回(取得)p值使用,即a[0]中的值!\/\/ 解引用后*(p++)得到"one"的...
若定义char *p[3]={"C++", "Java", "Pascal"}; 设数组p的起始地址为...
p等价于p[0]所以**p等价于p[0][0]即'C'p+1即为'D'(p+1)等价于p[1](p+1)为'J'(p+1)+1即为'K'p[1]等价于p[1][0]即'J'(p[1]+1)等价于p[1][1]即'a'(p[1]+1)+1即'b'
若定义 char s[2][3]={"ab", "cd"}, *p=(char *)s; 那么下列表达式语法...
1] = 'd',这个应该没问题吧?第二个字符串的第二个字符。++p+2 这个比较有趣,p是一个char*指针,指向字符数组首地址,&s[0][0]。首先++的优先级更高执行++p得到的是&s[0][1],然后*运算符解引用,得到s[0][1]s[0][1]的字符是'b',然后'b'+2,得到的就是'd'的ASCII码。
char* p[2][3] = { "Hello","world","student","computer","end...
定义p是一个2行3列的二维数组,数组元素是指向char型的指针
...main() {char a[]={"ABCDE"}; char *p=a; *(p+2)+=2; printf("%s...
因为p+2指向a[2],然后+=2,所以a[2]的值变为E。p+1指向a[1],输出是从a[1]开始输出字符串,所以答案是 BEDE