取消引用指向整数的指针时获得不同的结果
Getting different results when dereferencing a pointer to an integer
#include<stdlib.h>
#include<iostream>
using namespace std;
void fun(int* a){
int b=*a++;
cout<<b<<endl;
}
void fun1(int *a){
int b=*a+1;
cout<<b<<endl;
}
int main(){
int n=5;
fun(&n);//output remains 5
fun1(&n);//output incremented by 1
}
在函数 fun 中,n 的值在完成时不会递增,如上面的代码所示,另一方面在函数 fun1 中,n 的值递增 1.第一种方法递增 n 有什么问题?
您观察到的行为是运算符优先规则所期望的。
在第一种情况下,它是a++
,a
取消引用之前的值。
在第二个中:a
取消引用的值加 1。
相关文章:
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 取消引用指向整数的指针时获得不同的结果
- 指针数组中的意外结果
- 使用指针访问数组元素时出现意外结果
- C++数组和指针的大小的结果
- C++ 函数指针的计算结果为 1
- 对象指针打印结果以相反的顺序进行
- 使用 OpenCV 原始指针和 lambda 作为直方图的不同结果
- 插入指针数组会删除上一个结果
- 打印整数指针元素时的结果不同
- 错误:通过指针显示重复的结果
- 当应该删除其目标时,为什么此智能指针给出正确的结果
- 为什么我得到这个字符指针的不同结果?
- 在我的C++链表实现中取消引用节点指针,给出意想不到的结果
- 我可以将C 17 Capture lambda ConstexPR转换操作符的结果用作函数指针模板非类型参数吗?
- Cout删除了(未签名的字符)指针,给了我意外的结果
- 为什么无法将 std::bind 的结果分配给函数指针
- 如何否定MEM_FN创建的功能指针的结果
- 返回指向操作+的结果的指针
- 为什么在同一类中使用不同的(共享_ptr和正常)指针构造函数,我会得到不同的结果