#include <iostream>
using namespace std;
void change1(int x){
x = x + 1;
}
void change2(int &x){
x = x + 1;
}
int main(){
int x = 10,a,&b=a;//定义的时候&却可以用,a和b代表一块内存
int *s;
a=1000;
s=&a;//s指向a
//&b=a; [Error] lvalue required as left operand of assignment //左值必须作为赋值的左操作数
printf("a=%d,b=%d\n",a,b);
//printf("&a=%x,&b=%x\n",&a,&b);
//printf("&a=%d,&b=%d\n",&a,&b);
printf("&a=%p,&b=%p\n",&a,&b); //C语言用格式控制符%p输出指针地址
change1(x);
printf("%d\n",x);
change2(x);
printf("%d\n",x);
//在c++里面怎么打印变量的地址
//普通变量 int a; cout<<&a;
//指针变量或数组变量 int a[10]; cout<<(void *)a; cout<<(int *)
cout<<&a<<endl; //输出变量a的地址
cout<<(void *)a<<endl; //把a当做指针 ,把它的值当做地址输出 ,因为改变a的值这里输出有变化
cout<<(int *)a<<endl; //把a当做指针 ,把它的值当做地址输出 ,因为改变a的值这里输出有变化
cout<<(int *)s<<endl; //输出s指针指向的地址,就是a所在内存地址
return 0;
}
赋值&的思考
最新推荐文章于 2024-07-19 21:09:58 发布