不忘初心1020 发表于 2020-2-2 23:08:01

小甲鱼,带你学C带你飞

这两种在小甲鱼<带你学C带你飞>,数组指针练习时,还不是不明白,上面打印取值运算符时实际变量值,但是数组指针带不带取值运算符显示都是地址?

指针:
数组指针:
#include <stdio.h>   
int main
{
    int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int *p = &array;

    printf("p ->%p\n",p);
    printf("*p ->%d\n",*p);

    return 0;
}


数组指针:
#include <stdio.h>   
int main
{
    int array = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
    int (*p) = &array;

    printf("p ->%p\n",p);
    printf("*p ->%p\n",*p);

    return 0;
}

chxchxkkk 发表于 2020-2-3 12:39:22

数组名本身就是数组首地址,因此
int *p = &array; 这句是不对的
int *p = array 或者 int *p = &array这样才对

不忘初心1020 发表于 2020-2-3 13:26:31

chxchxkkk 发表于 2020-2-3 12:39
数组名本身就是数组首地址,因此
int *p = &array; 这句是不对的
int *p = array 或者 int *p = &array

是的,复制的时候笔误,指针那里应该是不加取地址运算符。
页: [1]
查看完整版本: 小甲鱼,带你学C带你飞