Archerwan_ 发表于 2022-10-15 22:41:42

学习数组时遇到的问题 求大佬帮忙解答一下谢谢(本人初学者)

int main(void)
{
        int num = {1, 2, 3, 4};
       
        printf("address1 is %p\n", num);
        printf("address2 is %p\n", &num);
       
        return 0;
}


两次打印的结果为什么是一样的? 数组名不是首元素的地址吗?
&num不应该是首元素地址的储存地址吗?
换用&加一个指针变量就可以;
请求大神解答一下

jackz007 发表于 2022-10-15 22:46:30

本帖最后由 jackz007 于 2022-10-15 22:48 编辑

      int num = {1, 2, 3, 4};
      num 是常量指针,和指针变量有所不同,取不取址值都一样,作为一个指针,num、& num 、& num 都是同一个值

Archerwan_ 发表于 2022-10-17 22:38:32

jackz007 发表于 2022-10-15 22:46
num 是常量指针,和指针变量有所不同,取不取址值都一样,作为一个指针,num、& num 、& num...

谢谢谢谢 我再琢磨琢磨
页: [1]
查看完整版本: 学习数组时遇到的问题 求大佬帮忙解答一下谢谢(本人初学者)