1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > *p++ *(p++) (*p)++ *++p ++*p的区别

*p++ *(p++) (*p)++ *++p ++*p的区别

时间:2023-10-23 15:35:12

相关推荐

*p++ *(p++) (*p)++ *++p ++*p的区别

1. 后缀++ 和 -- 大于 前缀 ++ 和 -- 大于 *

2.后缀是先使用后加加,后缀是先加加后使用

*p++

int arr[] = { 1,4,7,9,10 };int* p = arr;printf("原*p的值: %d\n", *p); // 1/// 后置++的优先级高于*,即 先p++ 后*p 但是后置++ 是先使用后++/// 所以先使用 p 此时p为首元素地址 解引用p得到 1 赋给 a ,p使用完后++, p为第二个元素地址int a = *p++; printf("a = %d, *p = %d\n", a, *p); // 1 4

*(p++)

int arr[] = { 1,4,7,9,10 };int* p = arr;printf("原*p的值: %d\n", *p); // 1/// 和前面一样先 p++ 后 *p 但是后置++ 是先使用后++int b = *(p++);printf("b = %d: *p = %d\n", b, *p); // 1 4

(*p)++

int arr[] = { 1,4,7,9,10 };int* p = arr;printf("原*p的值: %d\n", *p); // 1// 括号的优先级高于 后置++,所以先 *p 后++// 后置++ 是先使用后++,*p 得到值 1 先使用赋给 c 然后++, *p变为 2,则arr[0]也变为2int c = (*p)++;printf("c = %d: *p = %d\n", c, *p); // 1 2

*++p

int arr[] = { 1,4,7,9,10 };int* p = arr;// 前置++的优先级高于*,先++p 后 *p// 与第一个不同的是 前置++ 是 先++ 后使用// 所以 p加加后指向arr第二个元素,即p存放第二个元素地址,解引用得到 4 赋给 dint d = *++p;printf("d: %d *p = %d\n", d, *p); // 4 4

++*p

int arr[] = { 1,4,7,9,10 };int* p = arr;int e = ++ * p; // 等价于 ++(*p)printf("e = %d *p = %d\n", e, *p); // 2 2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
相关阅读
*p++ *(p++) (*p)++的区别

*p++ *(p++) (*p)++的区别

2022-05-10

p p *p的区别

p p *p的区别

2024-06-07

*p++ *(p++) *++p *(++p)的区别

*p++ *(p++) *++p *(++p)的区别

2019-10-27

P *P和P的区别

P *P和P的区别

2022-05-08