![]() |
好像可以用 while(*addr_point_0++ = *addr_point_1++); |
lyonkon 发表于 2025-3-22 01:21 换成unsigned int a = 0;问题解决。 |
188610329 发表于 2025-3-15 13:25 请问, 下面代码。变量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; } |
188610329 发表于 2025-3-15 13:25 谢谢! |
cyi8 发表于 2025-3-15 10:37 for(i=0;i<10;i++){ data_arry【i】= front 【i】; } 看这样行不行,要是可以就不需要指针了 |
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); } |
1,指针变量要与指向的变量类型相同,即char *p=&n;其中n必须是char n,不然执行程序时会强制转换为指针相同的类型,而且指针不能指向不同类型的变量。 2,我没看明白你用char定义那个for循环的i 是什么意思??char是定义一个字符的,你能用来定义 i 然后跑循环? 3,for循环中为什么一个指针变量++,一个是指针变量的值++? |