C++指针问题?这里选项b为什么是错的?是不是题目有误?

题目正确(附实例程序验证),D选项正确的话,那么B选项明显是错误的

注意B选项得到的是 : 元素b[3][0]的值加3。  




详细说明:

int b[4][4],数组有4行4列,注意数组下标从0开始到3

*(b+3)表示第四行的起始地址,那么这个地址+3,(*(b+3)+3)就是第四行第四列数据的地址。

这就是正确的D选项,然后B选项呢,*(b+3)表示第四行的起始地址,然后再取这个地址指向的数据 *(*(b+3)),错误就在这儿,最后得到第四行起始地址指向的数据值加3

实例程序B选项是88加3的结果



对于二维数组int b[4][4]
b=&b[0],表示二维数组首元素的地址,即第一行一维数组的地址
b+3=&b[3],表示第四行一维数组的地址
*(b+3)=b[3]=&b[3][0],表示第四行数组首元素的地址,即第四行第一列元素的地址
*(b+3)+3=&b[3][3],表示第四行第四列元素的地址
*(*(b+3)+3)=*&b[3][3]=b[3][3],表示第四行第四列元素
所以A、C、D都正确
而B中*(*(b+3))=*&b[3][0]=b[3][0],表示第四行第一列元素
因此*(*(b+3))+3=b[3][0]+3,表示第四行第一列元素的值加上3,明显不等于b[3][3]

大学C++问题。第15题求:B为什么错了?还有D是什么意思?

就是B错了。
*b=&a 就是定义一个字符指针b,它是指向字符变量a的地址。
**c=&b 其中,**c就是地址的地址,也就是一个变量,**是可以抵消的,就好像*和&是可以抵消的一样。&b就是代表b指向的地址所存储的变量。因为b就是指针,对一个指针取址,就是代表这个指针所指向的变量。明白了这一点,ABCD就很好判断了。正确的不说,B中,a==*c 题干中定义的是**c,c就是代表的变量。并不是指针,**只是干扰的,判断变量a和一个*变量是否相等,肯定是错误的。墨迹了好多。希望你能明白。

B的错误是没有声明的同时进行初始化。而A则进行了初始化


C++指针问题?这里选项b为什么是错的?是不是题目有误?
题目正确(附实例程序验证),D选项正确的话,那么B选项明显是错误的。注意B选项得到的是 : 元素b[3][0]的值加3。详细说明:int b[4][4],数组有4行4列,注意数组下标从0开始到3。(b+3)表示第四行的起始地址,那么这个地址+3,(*(b+3)+3)就是第四行第四列数据的地址。这就是正确...

C语言指针问题
答案应该是B!(*ptr)[5]是一个数组指针,长度为10个字节(16位编辑器,即5个int,每+1在内存上就移到下一个10字节),而arr[4][5]长度是20个int,ptr+3就刚好移到第13个int上,验证了楼上输出为30的结果(他的数组赋值第13个值为30)。为至于楼上调试出C输出结果为13,是因为ptr是首地...

C语言中的问题 B选项为什么错了?
因为a是整型变量,所以&a表示a的地址,*&a表示取出a的地址中的值,那么根据题意就是3;答案c表示把a的值赋值给b,就是通常最常用的变量间的赋值,所以结果为3;D答案中因为p为指向变量a的地址,那么*p就是取出p这个地址中的变量值,所以结果也是3;只有B的答案不争取,因为a本身就是整型变量,所...

c语言指针选择题求解
4.a是整型变量,p是一级指针a的地址。q是二级指针p的地址。5.q指向null。所以A错误,B正确,即为a赋值,C错误,a为整型变量,D错误不能为变量a乱改地址空间。6.A,*q=*p错误,q指向不知名的地址未初始化。B,不存在#符号。C,同A错误。D正确。为a赋值b的值,不过b的值未初始化不确定。

关于C语言指针的问题,大家进来看看我的理解哪里错了
B选项中地址加5其实不是单纯的数字加5哦 例如32位机器上(一个指针4字节),p1 += 5实际的操作是在那个地址数字上增加了4 * 5 = 20 C选项,p1, p2的类型均为 char* 型, 但是 &p2 的类型为 char** 所以C的赋值类型不对 B是对的 ...

C语言中指针的问题
char * s是一个指针变量,可以指向char类型变量的指针变量。这句话有这样几层含义。首先,s是指针变量(重点:或者说变量s的类型是指针类型)。指针,说白了就是内存地址。所以,不管是指向何种类型的指针,指针应该(?)都是一样的。比如int * p; char *p; float *p; 这里的p都是指针变量。

c语言这几道题 关于指针的 望大神解答
1、D选项,*x本身就错误,因为x是int类型,没法使用*操作符。2、A之所以错是因为代码中有一句q=NULL,也就是说q是一个空指针了,你再向里面写东西就错了,而且你在vc6.0中可以试一下,马上会出现一条0xc000 0005的写异常。。3、是的,你不管给它赋值多少都是4的。。就好比一个4平方米的房子...

问一道关于C程结构指针的题~~麻烦计算机大神们帮个忙啊~~
0])='B',显然是错的;C项:P是一级指针,*P相当于a[0]了,a[0]->name[0]就错了;D项:.比*的优先级高,所以D项表达式相当于*((*p).name))='D',又由于*p相当于a[0],所以也就相当于*( a[0].name ) = 'D',同理又相当于是a[0].name[0] = 'D',这是正确的。

c语言指针赋值问题?
选项解析:选项A,指针变量需要赋值一个变量的地址,A选项中将x变量的地址赋值给指针变量pb,B选项不能将一个变量直接赋值给指针变量。选项C,C选项中的赋值语法是错误的,正确的赋值语法应该是和A选项相同。D选项的错误类型和C选项的类似,所以综合以上分析,正确的答案为A。

C语言 9.16 9.18 指针 16题那里B错是因为什么? D为什么不正确 17题
额,又是你问问题呀,好好学哦。十六题:B选项字符串初始化不能直接str[]="china";只能在定义时直接 char str[]="china";或者 char str[]="china";否则要单个赋值,例如:str[0]='c';str[1]='h'等等 D中,字符串不能直接相互赋值,只能用函数如 strcpy(c,d);十七题:如果用测试字符...