4.若有以下定义,则对a数组元素的正确引用是 D 。
int a[5], ﹡p=a;
A)﹡&a[5] B)a+2 C)﹡(p+5) D)﹡(a+2)
C选项要满足什么样的定义的时候才能引用a数组元素?
c语言这几道题 关于指针的 望大神解答
1、D选项,*x本身就错误,因为x是int类型,没法使用*操作符。2、A之所以错是因为代码中有一句q=NULL,也就是说q是一个空指针了,你再向里面写东西就错了,而且你在vc6.0中可以试一下,马上会出现一条0xc000 0005的写异常。。3、是的,你不管给它赋值多少都是4的。。就好比一个4平方米的房子...
C语言指针的一个问题
(1) 第一个框里的代码 short* temp = *p1; 等价于下面的两条语句:short* temp;temp = *p1;所以,后面 p2=temp;和上面是一致的, 没错.(2)第二个框里的代码 没错, 指针就一个该指向指针, 但是你这里赋值一个值.这种做法是错误的, 不过对C语言来说, "错的"的意思是"不能保证正确", ...
c语言选择题(指针)
答案是A,首先定义p是一个指向int类型的指针,不过这个指针没有初始化,也就是没有指向。然后定义了一个int类型的变量i,这里千万不要认为i也是个指针,如果i跟p一样,要在前面也加个*号。然后分析答案: A,这里对p指向的变量进行赋值,这里是相当于初始化了。所以正确。B,不正确\/不合理,因为p的...
c语言,指针指向另一个指针的问题,为什么报错?
图中红色框内代码有误,*(p+5)不是表示指针而是值。应改为 q = p+5 另外补充说明,改成这样虽然没有语法错误,但是很明显p+5已经超过数组a的内存空间,需要注意。
请教各位,这道c语言指针题该怎么理解
str+1指向字符B所对应的地址,指针str+1所指向的字符串BCDEFG 指针p2+1所指向的字符串fgh strcpy(str+1,p2+1) str[50]="Afgh"即把BCDEFG换成fgh 指针str+3所指向的字符串Afgh中h所对应的的地址 指针p1+3所指向的字符串abcd中d所对应的的地址 strcpy(str+3,p1+3) str[50]="Afgd"
C语言指针问题
一、如有定义char y[4]= "321"则表达式 *y+2的值是'5' 。分析:y是字符串数组首元素'3'的地址,*y的值就是字符'3',再加上2,就是字符'5'(也可以说是字符'5'的ASC码值)。二、 如有定义char z[2][4]={"MAT", "LAB"};,则表达式*(*z+2)的值是 'T'。分析:z是二维字符...
一个C语言指针问题。求大佬解答?
j = 0; j < n; j++){ scanf("%d", &matrix[i][j]);} } \/\/ 求对角线元素之和 int sum = 0;for (int i = 0; i < n; i++){ \/\/ 对角线上的元素的指针 int *p = matrix[i] + i;sum += *p;} printf("Sum of the diagonal elements: %d", sum);return 0;} ...
问一道C语言指针题目 为什么p q地址交换以后mn的值不会交换?
m,n 的值没有交换。自然数值不变。指针指向地址交换,p 原指向 m, 现指向 n, q 原指向 n, 现指向 m, 所以变了。就如,m,n 是 甲,乙2人。p,q 是 镜子,p 原照着 m, q 原照着 n,现在 p 改照 n, q 改照 m.p,q 里的 影子变了,甲,乙2人 没变。
c语言问题,关于指针的问题
一、比如我们定义一个int型指针变量。int *p=NULL;初值为空。那么当执行while(p);时,只有p==NULL时,while循环才会结束。所以如果我们写while(p);printf。。。;那么只有当p为空时,后面的printf才会执行。否则就一直循环,这样我们就能判断p为空了。同理!p,自然就能判断p不为空了。二、p...
C语言关于指针的问题*++p与*(p--)
printf("%d ",*++p);\/\/++和*都是从右往左结合两者优先级一样所以和上句话一样*p=pa2]printf("%d ",*(p--));\/\/后-- 也就是先打印*p 在自减, 所以还是打印p[2] p -- p=p-1 *p=a[1]p+=3;p=p+3 所以 *p=a[4]printf("%d %d ",*p,*(a+3)); \/\/a+3 就是a...