关于C指针问题浅谈(一)

指针概念

用指针类型声明的变量就是指针变量  

常见类型有  int   char  float   等; 在他们后边加入* 就可以改变为指针类型  int*   char*  float*  

int   a; //声明为int 型变量  

int*  a   // 声明为一个指向int 类型的指针  a 为指针其值为地址空间   *a 为地址空间里面的值

//其他类型同理 char *  b     float * c;
指针变量存放的是变量的内存地址; 一般有十六进制表示 例如:0X013f3f67  地址为32为无符号整数  大概有 2^32 的地址 也就是4GB
struct  A{
  int a;
  int b;
}




int mian()
{
    cout<<sizeof(char*)<<endl;
    cout<<sizeof(int*)<<endl;
    cout<<sizeof(float*)<<endl;
    cout<<sizeof(unsigned int )<<endl;
    cout<<sizeof(A*)<<endl;
}
  
    
//结果都为4  由此可知指针在32计算占4字节  

如何获取地址  实际中不可能知道相应地址 只能通过& 取地址 

同类型指针只能取同类型地址

int main()
{

   int a=9;
int * p=&a;
  cout<<"a的地址为:"<<p<<endl;
cout<<"a的地址为:"<<&a<<endl;
return 0; }

同样结构体类型也可以取地址

 

struct Person
{
    int age=18;
    //char name[]= "LiMimg";
    const char *name2 = "LIHUA";
};

int main() {
    struct Person  man;//C语言写法
    struct Person *pA = &man;
    /*
    C++写法:也可兼容C语言写法
     Person  man;
     Person *pA = &man;
    */
     
    cout << "Person 地址为:" << pA << endl;
    cout << pA->age << pA->name2 << endl;


    return 0;
}

 

 

 

 

 




posted @ 2021-06-10 18:12  AI_Mi  阅读(52)  评论(0)    收藏  举报