❶ 单片机c语言怎样用指针访问code区数组中的某一元素
void
CHcnkDlg::OnButton1()
{
//
TOD
Add
your
control
notification
handler
code
here
char
str[8];
//定义一个字符串数组
,用来存放列表框1中输入的内容
char
*ptr;
//定义一个指针,用来处理字符串数组中的元素
char
cResult[8];
//定义一个字符串,用来存放列表框1中的数据经过处理后显示在列表框2中的
内容
m_List1.GetLBText(str,;
//调用GetLBText()函数,获得列表框1输入的内容,存放在字符串
数组str
中
ptr=str+2;
*ptr=0;
m_List2=(LPCTSTR)cResult;
//将结果字符串赋给对象m_List2
UPdateData(FALSE);
//更新屏幕
}
希望可以帮助到你
❷ 单片机用数组和用指针哪个能省程序空间
合理的运用最节省空间,不合理的运用总是浪费空间。
指针只不过是个地址类型,数组是一连串指定类型的结构空间,数组可以包含指针,指针也可指向数组,这种东西没有可比性,重要的是你理解他们的意义何在,如何合理的利用他们为你完成任务。
❸ 单片机编程。 keil中数组指针怎么用才规范呢一直提示C182警告
char* b;
char a[3]={1,2,3};
void main()
{
b=&a;
unsigned char i,vaule;
for(i=0;i<n;i++,b++) {
vaule=*b;}
就可以循环取出数组的值并赋值给 vaule了 或者 直接取a[2]的话就 *(b+2)就得了,为什么弄得那么复杂。指针+1就是表示取地址后面那个数了,自加就可以不断取后面的数
❹ 单片机程序 把数组赋值给p什么意思数组有很多位数据,哪一位赋给了p p=table1
p是指针,指向数组后,默认是其首个成员的地址,循环中执行P++或j++,p或p+j便指向下一个成员。L1602_char(1,17-i+j,*(p+j))即相当于L1602_char(1,17-i+j,table1[j])
❺ 51单片机定义一个大数组存在idata与xdata中有什么区别
51单片机定义一个大数组存在idata与xdata区别为:空间不同、访问不同、获取不同。
一、空间不同
1、idata:idata占用51单片机内部RAM的固定0x00-0xff空间。
2、xdata:xdata占用51单片机外部RAM扩展的0x0000-0xffff空间。
二、访问不同
1、idata:idata用类似C中的启键指针方式进行访问。
2、xdata:xdata用DPTR进行访问。
三、获取不同
1、idata:51单片机编译成功后,在粗凯idata区中,悄凳巧可以直接获取到定义的数组。
2、xdata:51单片机编译成功后,在xdata区中,不可以直接获取到定义的数组。
❻ 51单片机code类型 数组式指针
这个要理清楚加不加code的区别。
不加code,变量是存在片内RAM里面,就是通常意义上的变量,是运行时才从RAM里面分配的,可以在代码中修改变量的值。
加code,虽然写法上是变量,实际上是存储在ROM里面的,就是在程序烧写到单片机时已经分配好了,就是固定的常量,不能在代码中对其值进行修改的。
加不加code区分以后就很好解释了,语句4加code,在烧写进去时是必须定好的常量,语句 1 2 3就必须加code,因为不能在烧写程序时的ROM空间的指针指向尚未初始化的RAM内容。语句4不加code,在运行后分配的RAM指针指向不加code的RAM空间也行,指向加code的ROM空间也行。