找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

C语言地址指针问题,请指导一下

查看数: 583 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-3-14 20:26

正文摘要:

回复

ID:74687 发表于 2025-3-22 14:34
好像可以用 while(*addr_point_0++ = *addr_point_1++);
ID:73992 发表于 2025-3-22 10:57
lyonkon 发表于 2025-3-22 01:21
请问, 下面代码。变量a越界,将unsigned char a;   换成unsigned int a;硬件运行没有达到想要的效果。 ...

换成unsigned int a = 0;问题解决。
ID:73992 发表于 2025-3-22 01:21
188610329 发表于 2025-3-15 13:25
unsigned char data_array[10];
unsigned char *addr_point_0;
unsigned char *addr_point_1;

请问, 下面代码。变量a越界,将unsigned char a;   换成unsigned int a;硬件运行没有达到想要的效果。因为无法软件仿真,编译器是arm gcc     
        unsigned char c;
        unsigned char a;
        for(unsigned char i=0; i<16; i++){
            for( unsigned char j=0; j<8; j++){
               data_array[a] = font[c];
                a ++;
                c ++;
            }
         a = a+220;
        }   
ID:73992 发表于 2025-3-15 20:10
188610329 发表于 2025-3-15 13:25
unsigned char data_array[10];
unsigned char *addr_point_0;
unsigned char *addr_point_1;

谢谢!
ID:73992 发表于 2025-3-15 13:25
cyi8 发表于 2025-3-15 10:37
1,指针变量要与指向的变量类型相同,即char *p=&n;其中n必须是char n,不然执行程序时会强制转换为指针相 ...

for(i=0;i<10;i++){
  data_arry【i】= front 【i】;
}
看这样行不行,要是可以就不需要指针了
ID:624769 发表于 2025-3-15 13:25
unsigned char data_array[10];
unsigned char *addr_point_0;
unsigned char *addr_point_1;

unsigned char const front[]= {0,1,2,3,4,5,6,7,8,9};  
unsigned char code front[]= {0,1,2,3,4,5,6,7,8,9};  //不知道你什么编译器 二者选一

void main()
{
   unsigned char i;
   addr_point_0 = &data_array[0];
   addr_point_1 = &front[0];
   for(i = 0; i<10; i++)
   {
      *addr_point_0 = *addr_point_1;
      addr_point_0++;
      addr_point_1++;
   }
   while(1);
}
ID:1121801 发表于 2025-3-15 10:37
1,指针变量要与指向的变量类型相同,即char *p=&n;其中n必须是char n,不然执行程序时会强制转换为指针相同的类型,而且指针不能指向不同类型的变量。
2,我没看明白你用char定义那个for循环的i 是什么意思??char是定义一个字符的,你能用来定义 i 然后跑循环?
3,for循环中为什么一个指针变量++,一个是指针变量的值++?

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表