熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
| 好像可以用 while(*addr_point_0++ = *addr_point_1++); |
lyonkon 發(fā)表于 2025-3-22 01:21 換成unsigned int a = 0;問題解決。 |
188610329 發(fā)表于 2025-3-15 13:25 請(qǐng)問, 下面代碼。變量a越界,將unsigned char a; 換成unsigned int a;硬件運(yùn)行沒有達(dá)到想要的效果。因?yàn)闊o法軟件仿真,編譯器是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 發(fā)表于 2025-3-15 13:25 謝謝! |
cyi8 發(fā)表于 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,不然執(zhí)行程序時(shí)會(huì)強(qiáng)制轉(zhuǎn)換為指針相同的類型,而且指針不能指向不同類型的變量。 2,我沒看明白你用char定義那個(gè)for循環(huán)的i 是什么意思??char是定義一個(gè)字符的,你能用來定義 i 然后跑循環(huán)? 3,for循環(huán)中為什么一個(gè)指針變量++,一個(gè)是指針變量的值++? |
Powered by 單片機(jī)教程網(wǎng)