首页 > 试题广场 >

int a[]= {1,2,3,4,5}, int *p =

[单选题]
int a[]= {1,2,3,4,5};
int *p = a;
下列表达式与 ++*p 相同的是()
  • *++p
  • a[0]
  • ++a[0]
  • *p++
带*的还出现在java范畴里,怪胎怪哉
发表于 2020-04-09 13:32:32 回复(0)

第一眼看着就觉得怪,以为是就是*p,大学时候学过c语言,感觉像是指针,后来觉得我练习的是java,不应该把,没想到真是出错了,我说怎么没见过这种语法

发表于 2020-01-08 16:25:06 回复(0)
*符号 —— 取p指针所指地址的内容
++符号 —— 完成对索取内容的自增操作
发表于 2019-09-14 09:07:58 回复(0)
是哪位大神把这顺丰科技的c++题全部都贴上java的标签的??
发表于 2019-08-05 14:49:02 回复(9)
顺丰科技:不会C/C++的程序员不是好的java工程师。
发表于 2019-09-01 13:13:24 回复(4)
*p指针指向第一位,也就是a[0],++*p就是++a[0]。
发表于 2019-08-01 17:19:49 回复(9)
++ 优先级大于 * ,离变量距离相同
eg: *p++,指针自增
其他情况,谁离变量近先算谁。
eg:*++p和++*p,前者指针自增,后者值自增

如有误,望指出。
编辑于 2020-06-04 15:30:06 回复(0)
额,每次碰到c的题我就在想,顺丰,肯定是你丫的!!
发表于 2019-08-15 22:56:27 回复(0)
*和++是一个优先级,但结合顺序是从有往左的。
++*p是先*p再加加,是a[0]+1.
而*p++则是先p++结合再*。
但是++是后运算会在;结束后对地址加1
所以还是a[0];
发表于 2020-09-13 15:50:04 回复(0)

++ --优先级高于*

发表于 2020-03-03 17:13:17 回复(0)
题目可能有点问题,说的不是结果而是表达式意思
#include <stdio.h>
#include <string.h>

int main(void)
{
    int a[] = { 1,2,3,4,5 };
    
    int *p = a;
    printf("%d\n", ++*p);//2

    //printf("%d\n", ++a[0]);//2

    //printf("%d\n", *++p);//2

    return 0;

}
发表于 2019-09-05 19:41:52 回复(0)

++作为前缀,与*的优先级相同,作为后缀,++优先级高于*,所以:++* p;等价++(*p),*++p;等价*(++p),*p++;等价*(p++)

发表于 2022-11-26 11:10:24 回复(0)

*p是指针变量,当*p=a时,表示的是将数组的首地址即a[0]的地址赋值给了*p,++*p意思就是地址指向了a[1]的地址(数组存储内存是连续的),故*p表示的就是a[1]中存储的值,就等效于++a[0]

发表于 2020-01-12 17:24:06 回复(0)
突然明白了,p指向a[0]的地址,*p表示的是a[0]的值
发表于 2019-08-21 11:32:23 回复(0)
做了几十到顺丰科技的题,这次是第一次对
发表于 2019-08-19 22:02:18 回复(0)
A和C结果都和++*p 相同,但表达的含义不同,题目怪怪的
发表于 2023-09-25 21:07:40 回复(0)
不是指值相同,而是表达式的意思
发表于 2022-10-01 19:55:26 回复(0)
单目运算符从右到左结合(运算优先级从右到左)(不确定)
发表于 2022-04-01 11:45:12 回复(0)
这题错了吧,a[0]难道不是常量吗?C语言常量可以++?
发表于 2021-12-10 16:57:29 回复(2)
为什么A不对啊,我在vs2017上运行了一下,结果是一样的啊。
发表于 2021-01-05 10:27:00 回复(2)