zoukankan      html  css  js  c++  java
  • 指针

    1. Int  *point=5; 这种写法是不对的,但是 int  *point=&a; 这种写法是正确的 。可以写成int  *point=(int*)5; 

    2. int *point =&a; *point 代表这是一种指针型变量,变量名是point ,int *point=&a  意识是将a 的地址取出来,给point ,( 我觉得 可以将int* 看做一种数据类型,point看做变量)。

    而&a 和 ;printf("%d",*point);可以看做一种逆运算, *point意味着将point 的值当做地址,然后将这个地址里的值取出来。&a 意味着将a 这个元素的地址取出来。例如:                  

           int *a=&b; //这是标准语法,等号左边是指针型变量,等号右边是数据地址

           int *a; *a=5;  //这句话编译没问题,运行出错,会报warning C4700: local variable 'point_1' used without having been initialized   这个警告,原因在于,在给初始化*a 的时候,也就是  int *a; 这一句,没有给a确切的地址,这导致*a 指向随机内存,这个时候  *a=5; 代表着 将5 赋给*a指向的内存区域 ,环境不知道将5放到哪里。

          int *a; a=&k; *a=5;  //这句话就是上一段代码的补充, 先将a初始化。然后将a指向 k在内存中的地址。最后,将5赋给a所在的地址中,就是赋给k .

    3. 切记要搞清楚赋值语句左右的内容,以及数据类型,例如:

         int *a, *b; int c=100,d=200;

         a=&c; b=&d;

        *a=50;  //这句话对,将50 赋给 a 指向的内存区域,也就是c

        *b=&c; *a=&d;  //这句话错,原因在于 *b 的数据类型是int 而 &c的数据类型是地址

       

  • 相关阅读:
    ArrayList排序Sort()方法(转)
    sqlserver2008 insert语句性能
    Installing TensorFlow on Ubuntu
    自动下载和安装 MNIST 到 TensorFlow 的 python 源码 (转)
    c# BackGroundWorker 多线程操作的小例子 (转)
    c# 修改winform中app.config的配置值
    ffmpeg 编译graph2dot
    ffmpeg常用命令
    live555例子程序编译连接时发现函数未定义问题
    编译代码是提示某些类型错误问题
  • 原文地址:https://www.cnblogs.com/miry/p/5307430.html
Copyright © 2011-2022 走看看