IAR基于msp430f149单片机指针和数组的应用 非专业人士请不要回答 谢谢

怎样用指针访问程序存储区里面数组中的某一个元素我很菜尽量详细点... 怎样用指针访问程序存储区里面数组中的某一个元素 我很菜 尽量详细点 展开
 我来答
百度网友1f3b461
2014-11-09 · TA获得超过242个赞
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:85万
展开全部
如果你是用汇编的话,直接定义个地址就行了。

如果你是用C的话,可以参照以下方法:

unsigned char Abuffer[3]={1,2,3}; //定义一个数组,并赋初值,你也可以自己在后面赋值
void main(void)
{
unsigned char *pt; //定义一个unsigned char类型的指针变量
WDTCTL = WDTPW + WDTHOLD; //关掉看门狗,因为430默认看门狗是开启的,所以我们都要先把它关掉。
pt =&Abuffer; //将指针指向数组的第一个元素。
pt++; //指针指向数组的第2个元素
//要想让指针指向固定的某个元素可以如下:
pt=&Abuffer[n]; //n代表你要指向的元素.
}

希望能帮助你。
追问

  你上面定义的数组不是在程序存储区吧    我在头文件里定义了这样一个数组

unsigned char code add[]={0x3E, 0x08, 0x08, 0x08, 0x08, 0x28, 0x18, 0x08};   编译的时候怎么是错的      另外,我按照你这样定义编译的时候也是错的

追答
这个有个地方写错了:
unsigned char Abuffer[3]={1,2,3}; //定义一个数组,并赋初值,你也可以自己在后面赋值
void main(void)
{
unsigned char *pt; //定义一个unsigned char类型的指针变量
WDTCTL = WDTPW + WDTHOLD; //关掉看门狗,因为430默认看门狗是开启的,所以我们都要先把它关掉。
pt =Abuffer; //将指针指向数组的第一个元素。
pt++; //指针指向数组的第2个元素
//要想让指针指向固定的某个元素可以如下:
pt=&Abuffer[n]; //n代表你要指向的元素.
}
直接指向数组不用加&
如果指向某个指定的数组值才要加&
另外,如果想要将指针指向的数值读取,那么可以定义一个变量
例如:
unsigned char data;
data = *pt;
查晓筠0i5
2014-11-08 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4982万
展开全部
需要帮你做吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式