zoukankan      html  css  js  c++  java
  • c++指针 初识

    从JAVA转C++,开始对指针的理解,讲讲自己对指针的理解,指针也是一个变量类型而已,存的就是是某个对象或变量的地址,还是先上代码吧:代码最直接了:

    #include "stdafx.h"
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	int i = 100 ;
    	//赋值方法一
    	int *p =&i;//可以这样定义指针并且赋值
    	//赋值方法二
    	int *pt;
    	 pt = &i;
    // *pt = &i 这样定义不行 ,赋值方法一那样定义就行 //下面是测试结果 printf("i: %d\n",i); /* //就是指向的某个变量的内存地址 可以看出 p = &i 跟上面的赋值赋值有点不同,开始我 一直 以为赋值方法是*p=&i;那么*p=&i应该也可以的; 也可能我理解能力差的缘故, */ printf("p: %d\n",p); printf("&i: %d\n",&i); printf("*p: %d\n",*p);//就是该内存地址的内容或值 printf("pt:%d \n",pt); printf("*pt:%d \n",*pt); /* 指针的内存地址,说明指针也有自己的内存地址,指针就是一个类型 */ printf("&pt:%d \n",&pt); printf("&p:%d\n ",&p); return 0;

      上面就是我个人对指针的理解。

     使用指针:

    int * myPointer = new int ;

    在此情况下,指针指向一个整数值的地址。为访问这个值,需要对这个指针解除引用。如下代码

    *myPointer = 8;
    

      


    int *myPoniter = new int ;//动态分配内存 printf("&myPoniter:%d\n ",&myPoniter); printf("*myPoniter:%d\n ",*myPoniter); *myPoniter =8; printf("&myPoniter:%d\n ",&myPoniter); printf("*myPoniter 8:%d\n ",*myPoniter); delete myPoniter;//释放内存

      

    这里并没有改变指针的内存地址,指改变该内存地址的内容;

     下面代码是对数组指针的理解;

    	const size_t  size = 5;
    	int int_arr[size] = {0,1,2,3,4};
    	int *b = int_arr;
    	int *e = int_arr+size;
    	printf("b:%d\n",b);
    	printf("b++:%d\n",++b);
    	printf("int_arr0:%d\n",&int_arr[0]);//b = &&int_arr[0]
    	printf("int_arr1:%d\n",&int_arr[1]);//++b=&int_arr[1]
    	printf("e:%d\n",e);
    
    	for (int *pbegin = int_arr,*end =int_arr+ size;pbegin != end;++pbegin)
    	{
    		std::cout<<*pbegin<<endl;
    	}
    

      

  • 相关阅读:
    silverlight通过WCF访问SQLserver示例
    PRISM ‘VS100COMNTOOLS’ not set. Cannot set the build environment
    定义了重复的“system.web.extensions/scripting/scriptResourceHandler”节
    silverlight+WCF之Hello world
    Java基础——注释规范
    Java基础—JDK环境变量配置
    Java基础—异常
    Java基础—面向对象
    Java基础—基础语法与常用命令
    Eclipse添加Junit测试
  • 原文地址:https://www.cnblogs.com/echo6106/p/2978146.html
Copyright © 2011-2022 走看看