gpt4 book ai didi

c - 如何将指针数组引用到多个常量数组

转载 作者:太空宇宙 更新时间:2023-11-04 08:51:33 27 4
gpt4 key购买 nike

我有三组不同数据的数组

const UINT16 array1[4] = {1,2,3,4};   

const UINT16 array2[4] = {3,2,2,4};

const UINT16 array3[4] = {8,7,2,4}; //This is not PIN code, :-)

...

void example(void)
{

UINT16 * pp;

UINT16 data;

pp = array1;

data = pp[0];

pp = array2;

data = pp[3];

pp = array3;

data = pp[2];

//and rest of code, this is snipped version of my larger code

}

在 dspIC33 中,我收到“警告:赋值丢弃指针目标类型的限定符”

根据谷歌搜索的印象,我可能会这样做....

void example(void)
{

const UINT16 * pp;

pp = array1;

pp = array2;

pp = array3;

//and rest of code, this is snipped version of my larger code

}

那么存储地址数据的 pp 变量是否会成为一个固定值? (即在 ROM 内存中)?

正确的方法是什么?如果可能,我更愿意将数据保存在 const 内存中?

最佳答案

你分析错了,pp不是const而是pp指向的值是const (即 *ppconst)。

const UINT16 * pp; // means pp is a pointer to a const UINT16 value

如果你希望 pp 是 const 因为指向的地址是 const 你必须写:

UINT16 * const pp; // means pp is a const pointer to a UINT16 value

如果你想同时拥有指针和指向值的常量,你必须这样写:

const UINT16 * const pp; // means pp is a const pointer to a const UINT16 value.

关于c - 如何将指针数组引用到多个常量数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19494420/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com