qq_36031892
2016-09-02 06:28
采纳率: 100%
浏览 2.3k

c语言中,为什么在输出地址时,普通指针不用加&,而数组地址要加&?

c语言中,为什么在输出地址时,普通指针不用加&,而数组地址要加&?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

6条回答 默认 最新

  • Zmyths 2016-09-02 08:22
    已采纳

    指针存的就是地址啊,而且数组名也不用加,它就是数组的首地址,只不过后面的某个元素array[n],取它的地址就得加&

    点赞 评论
  • oyljerry 2016-09-02 06:32

    指针本身就是指的地址,而数组是一个对象,所以一般用&来标志取它的地址

    点赞 评论
  • AlbertS 2016-09-02 06:35

    单纯输出地址的时候数组也可以不加&啊,没有说必须得加,数组名代表了数组的首地址

    点赞 评论
  • 村中少年 2016-09-03 02:08

    如果这个是一个具体值的话,加&取其地址,如&A[10],如果本身就是一个地址,这不需要如数组名A

    点赞 评论
  • sun_feel 2016-09-03 06:46

    指针本来存放的就是地址啊,比如p = 0x01 是地址,而*p = 1 是指针指向的内容,数组就不同了,和指针本来就有区别

    点赞 评论
  • 阿卡阿卡 2016-09-03 13:20

    数组名和指针是不一样的。数组名仅仅是一个符号,不是变量,它没有自己的存储空间,等于第一个变量的地址,而指针实实在在的是个变量,有自己的空间!但是
    char str1[20] = {"ha,hei,ha"};
    printf("%X\n",str1);
    printf("%X\n",&str1[0]);
    结果是一样的。

    点赞 评论

相关推荐 更多相似问题