精华内容
下载资源
问答
  • C++中int *a; int &a; int & *a; int * &a

    万次阅读 多人点赞 2018-12-01 22:10:06
    C++中指针和应用的不同混用方式往往具有截然不同的语义,所以这里详细地对几种指针和引用的混用方式进行区分,指针和引用的混用常见的如下面几种: int i; int *a = &i; //这里a是一个指针,它指向变量i ...

    C++中指针和应用的不同混用方式往往具有截然不同的语义,所以这里详细地对几种指针和引用的混用方式进行区分,指针和引用的混用常见的如下面几种:

    int i;
    int *a = &i;		//这里a是一个指针,它指向变量i
    int &b = i;		    //这里b是一个引用,它是变量i的引用(别名)
    int * &c = a;		//这里c是一个引用,它是指针a的引用
    int & *d;	        //这里d是一个指针,它指向引用,但引用不是实体,所以这是错误的
    

    区分技巧:在分析上面代码时,可以从变量标识符开始从右往左看,最靠近标识符的是变量的本质类型,而再往左即为对变量类型的进一步修饰。

    举例 :

    int * & a;

    标识符a的左边紧邻的是&,证明a是一个引用变量,而再往左是*,可见a是一个指针的引用,再往左是int,可见a是一个指向int类型的指针的引用。

    展开全文
  • int &*p与int *& p

    千次阅读 多人点赞 2019-02-26 12:09:06
    int &*p ; 是不正确的,*与p靠得最近,所以p是一个指针,但是这个指针的类型是int &,所以这个是错吴的, 因为不能创建引用的指针。 int *& p , 是正确的, &与p靠得最近,所以p是一个引用,这个引用的类型是int*...

    int &*p; 是不正确的,*与p靠得最近,所以p是一个指针,但是这个指针的类型是int &,所以这个是错吴的, 因为不能创建引用的指针。

    int *& p, 是正确的, &与p靠得最近,所以p是一个引用,这个引用的类型是int*,也就是一个指针变量的引用,但是必须初始化,否则也是错误的。.

    展开全文
  • golang&和*的区别

    万次阅读 2019-04-14 20:28:50
    &符号的意思是对变量取地址 *符号的意思是对指针取值

    &符号的意思是对变量取地址
    *符号的意思是对指针取值

    展开全文
  • #include<stdio.h> #include<stdlib.h> /* &*和*&的区别 */ /* written by Chen Gengru */ /* updated on 2019-1-1 */ void main() { int a; int *p; p = &a; scanf("%d", p);... }
  • c++中 *& 和 **& 符号作用说明

    千次阅读 2013-11-12 15:04:31
    在c++中,尤其是函数调用或者函数返回的时候,通常会遇到调用 引用(&) 或者返回 引用(&) 对象,更甚者函数调用 **(指针的指针),但是“*&”和“**&”却很少看到,到底代表什么意思呢?下面简单介绍一下。

             在c++中,尤其是函数调用或者函数返回的时候,通常会遇到调用 引用(&) 或者返回 引用(&) 对象,更甚者函数调用 **(指针的指针),但是“*&”和“**&”却很少看到,到底代表什么意思呢?下面简单介绍一下。

            先从基本的开始:

             1、函数返回引用及函数调用引用

              引用简单来看,就是一个变量的别名,所以和原来调用函数的实参没有什么区别,就是同体(一样的)。

             

    ostream &operator<<(ostream &output, const AAA &aaa)  
    {  
         output << aaa.x << ' ' << aaa.y << ' ' << aaa.z << endl;  
         return output;  
    } 
            从上面函数调用到函数返回,output始终都是一个。

            2、函数传递参数为指针

            一般的情况,在上一篇博文中有详细的介绍:http://blog.csdn.net/richerg85/article/details/14450183,这里不再赘述。

           函数传参“**”情况,上文也介绍:

         

        void my_malloc(void** p, int size)  
        {  
            *p = malloc(sizeof(int)*size);  
        }  
        int main()  
        {  
            int *a;  
            my_malloc(&a , 10);  
            return 1;  
        }  
          通过这种调用可以返回修改的对象值。

       

         那*& 和 **& 符合分别又代表什么呢?

        例如int *&p;

        int **&p;

        其实这两个*& 和 **&是表示引用,*&表示指针的引用,**&表示指针的指针的引用。

        举例:

       

    void foo(int*& x, int**& y) {
        // modifying x or y here will modify a or b in main
    }
    
    int main() {
        int val = 42;
        int *a  = &val;
        int **b = &a;
    
        foo(a, b);
        return 0;
    }
     修改调用函数中的x和y,会直接影响到主函数中的a和b的值。因为他们是引用关系。


    再说一点和标题不想关的,还是上篇文章提到的问题,这里再给个实例:

    void pass_by_value(int* p)
    {
        //Allocate memory for int and store the address in p
        p = new int;
    }
    
    void pass_by_reference(int*& p)
    {
        p = new int;
    }
    
    int main()
    {
        int* p1 = NULL;
        int* p2 = NULL;
    
        pass_by_value(p1); //p1 will still be NULL after this call
        pass_by_reference(p2); //p2 's value is changed to point to the newly allocate memory
    
        return 0;
    }
    好好领悟一下吧!

    展开全文
  • &和*的区别

    千次阅读 2019-08-01 15:49:50
    &是取地址运算符,&p就是取指针p的地址。等会,怎么又来了个地址,它到底和p有什么区别?区别在于,指针p同时也是个变量,既然是变量,编译器肯定要为其分配内存地址,就像程序中定义了一个int型的变量i,...
  • C++函数参数中*&与*的区别

    千次阅读 2018-03-07 21:31:13
    #include&lt;stdio.h&gt; class A { //... }; void _create1(A* a) { a=new A(); } void _create2(A* &amp;a) { a=new A(); } int main() { A* a=NULL; printf("... prin...
  • 从go语言中找&和*区别

    万次阅读 2017-01-19 12:52:05
    *和&的区别 : & 是取地址符号 , 即取得某个变量的地址 , 如 ; &a *是指针运算符 , 可以表示一个变量是指针类型 , 也可以表示一个指针变量所指向的存储单元 , 也就是这个地址所存储的值 . 从代码中验证 :先构建一个...
  • *&是什么意思

    千次阅读 多人点赞 2018-10-24 12:45:57
    问:*&amp;是什么意思? 答: 你要先明白这种情况 int a=10; ...这种情况,p与a是不同的变量,这里是将a的值赋给p ...即 p是a 的别名,p和a其实是同一个整形变量,两个占用同一块内存空间,如果有 p=15;...
  • C/C++ 的*和& 详解

    万次阅读 多人点赞 2018-09-27 12:04:10
    C/C++ *和&amp; 详解 C/C++中 * 的用法 1&gt;最简单的乘法: a*b; 2&gt;可以注释: /**/ 3&gt;指针:(最重要) 指针是指向变量的地址 简单的例子分析: int main() { int a = 3;...lt
  • C++中*与&的区别

    万次阅读 多人点赞 2017-10-30 14:01:57
    *是取值运算符,对地址使用可以获得地址中储存的数值。 对于指针a,*a表示取a中的值 &是地址运算符,对变量使用可以获得该变量的地址。 对于变量b,&b表示取b的地址 ...在定义时,* 是一个标识符,声明该变量是一...
  • C语言中的*和&符号

    万次阅读 多人点赞 2019-02-23 19:07:54
    a == &*a 都是该存储单元的地址。  当a声明的类型是 int** 时,a中存储的是一个存储单元的地址,而 该存储单元中存储的数据是 另外一个存储单元的地址,另外这个存储单元中存储的是一个整数数值; 通过**a 可以...
  • C语言中*和&

    千次阅读 2016-07-13 20:26:40
    (一) 在定义时,* 是一个标识符,声明该变量是一个指针,比如说int *p; 那p就是一个指向int型的指针; 在调用时, (1)*p是指指针p指向的那个变量,比如说之前有int a=5;int *p=a;那么p的值是a的地址,也就是...
  • C语言中*和&的区别-代码实现说明

    万次阅读 多人点赞 2016-10-23 19:51:07
    *是指针运算符,可以表示一个变量是指针类型;也可以表示一个指针变量的所指向的存储单元,可以获取某个地址存储的值。 &是取地址符号,既取得某一个变量的地址 int *p=&a; 或 int *p; p=&a;表示将a的地址存储在p内...
  • golang 里面指针符号的*和&

    千次阅读 2019-02-21 10:27:21
    同理,a和*&*&*&*&a是一样的,都是1 (因为4个*&互相抵消掉了) 展开 因为有 var b *int = &a 所以 a和*&a和*b是一样的,都是a的值,值为1 (把b当做&a看) 再次展开 因为有 var c **int = &b 所以 **...
  • a+1、&a+1、*(a+1)、*(&a+1)、*(*(&a+1))的区别

    万次阅读 多人点赞 2019-06-08 23:54:51
    首先,公布一下结果: 感人的总结就是:a是数组首地址,&a是数组首元素的地址. a+1就是数组首地址加上一个元素所占的地址大小,这里int是4个字节,所以加上14. &a+1代表的是加上整个数组的大小,这里...
  • c语言中关于int *p = &a 的解读

    千次阅读 2020-04-29 10:27:06
    今天,贺贺问了我这个问题,我开始也有点懵,哈哈,后来懂啦! int a = 512, *p = &a; 问*p的值是多少 ...这句话的意思是定义一个int类型指针,然后用a的地址给p赋值;...对于指针p来说,*p就是指针p所指向的内存...
  • C语言中* & 和不写* &的区别

    千次阅读 2018-10-03 23:48:40
    int a = 10; int *b = &amp;a; printf("%p\n",&amp;a); \\输出变量a自身地址 printf("%p\n", b); \\输出指针b中指向的地址,即a地址 printf("%p\n"... printf...
  • c语言中*和&的作用

    千次阅读 多人点赞 2020-03-19 12:45:17
    c语言中*和&的作用 *有三个作用 乘法 定义指针变量 int *p 取得指针所指向的内存单元的值,当指针指向另一个内存单元的地址时,那就是另一个的内存单元的值 内存申请 定义结构体 ......
  • C/C++中*和&的用法

    万次阅读 多人点赞 2017-06-17 23:27:36
    在C++中*与&的用法的简单总结。
  • 关于int*p=&a与int*p;p=&a的解惑

    万次阅读 多人点赞 2019-03-30 11:21:59
    在学习c语言解惑中遇到这个问题,其中对int *p=&a的写法百思不得其解,查了网上资料得出 这样的理解是错误的 正确理解是 一般来说*p=&a的表示方法是错的,*p=a和p=&a是正确的。2.*p=a的意思:将a的值...
  • *(int*)&p ----这是什么?

    千次阅读 2017-07-15 09:50:49
    *(int*)&p ----这是什么?
  • p = &a 和*p = a的区别详解

    千次阅读 2018-11-27 09:09:35
    https://www.cnblogs.com/storml/p/7766702.html
  • P、*P和&P三者的区别

    万次阅读 多人点赞 2019-02-20 09:39:49
    1. 指针P 假设我们定义一个指针p。那么会经常使用到三个符号: 1,p;... &*p=&(*(p))=&(3000H),读者可能以为&*p=p, 此时出错了,同样的3000H 是个常数怎么可能有地址呢?* **p的值为多少?*p=*(*(p))=*(*(2003H)
  • *p=a与*p=&a有什么区别

    万次阅读 多人点赞 2017-07-20 17:15:52
    首先来说一下*和&,为了便于理解你可以认为,这里*是取内容,&是取地址。 我不讨论它们的区别,因为*p=&a这个形式一般是错的,常用的是p=&a。 下面比较*p=a和p=&a。看图,图很详细。...(定义指针变量*p)
  • 如果你说的是函数的形参,那么 void foo(int* ptr); 是传值调用,比如你这么调用 int a; int* pValue = &a; foo(pValue); 这样的情况下,pValue的值是不能被函数foo改变的,也就是pValue肯定是指向a的。...
  • c++中*p=a和p=&a的区别

    万次阅读 多人点赞 2018-09-19 18:33:51
    运行环境:VS2013,语言:C++。 #include <iostream> using namespace std; int main() { int a = 10; int *PA = new int; *PA = a; cout << "*PA is:" << *PA <... /...
  • int *p=a和int *p=&a的区别

    万次阅读 多人点赞 2018-10-20 20:33:38
      指针变量用来存放指针(或者可以理解成地址)。而 &amp; 则是取地址运算符,因此给指针变量赋值的方式一般是把变量的地址取出来,然后付给对应类型的指针变量: int a; int* p = &amp;...
  • 运算符“*”和运算符“&amp;”的作用是什么? *称为指针运算符,是一个一元运算符,表示指针所指向的对象的值; &amp;称为取地址运算符,也是一个一元操作符,是用来得到一个对象的地址。...
  • c/c++变量前加*和加&的区别

    万次阅读 多人点赞 2018-09-08 11:02:14
    1.*介绍 变量前加*号,只有在变量为指针情况下才是合法的 当*用于定义时,是标明该变量为指针类型 除此以外,*的作用是取值。 C++中的指针可以理解为一个地址的值,*用于取值时就是取出该地址中存储的值 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,329,855
精华内容 4,131,942
关键字:

&*