本人对于指针的小认知

#include<iostream>
using namespace std;
int main(){
int a=12;
char *p;
p =(char*)&a;
*p='a';
cout<<(char*)(&a);
cout<<&a;
cout<<*(&a);

return 0;
}

&a返回的是一个地址(也可以称为指针)该指针类型与a的数据类型一致  要取出该值 必须告诉计算机这是一个地址要用这个地址去取出值 *(&a) 用于取出该地址对应的内存地址的值

p = &a;若上面直接这样赋值将会报错:这是因为&a 返回的是整型数据的地址  而p确是字符型地址 应该将整型指针转换成字符型指针 这里将把其当作字符型数据的地址 查找相关的地址 读者可以观察到上面
cout<<(char*)(&a);和
cout<<*(&a);
结果是不一样的
error: cannot convert ‘int*’ to ‘char*’ in assignment
p=&a; 

  

猜你喜欢

转载自www.cnblogs.com/webcyh/p/11320377.html