找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 459|回復(fù): 7
收起左側(cè)

C語言地址指針問題,請指導(dǎo)一下

[復(fù)制鏈接]
ID:73992 發(fā)表于 2025-3-14 20:26 | 顯示全部樓層 |閱讀模式
2025-03-14 17-55-47屏1幕截圖.png 上面第一行 char的含義和第二行 char的含義是否相同。
將常量數(shù)組寫入變量地址,正確的寫法。

不會使用指針,代碼不知道對錯,請老師指導(dǎo)一下,謝謝
2025-03-14 17-26-32屏幕截圖.png 2025-03-14 17-55-47屏幕截圖.png

回復(fù)

使用道具 舉報

ID:74687 發(fā)表于 2025-3-22 14:34 | 顯示全部樓層
好像可以用 while(*addr_point_0++ = *addr_point_1++);
回復(fù)

使用道具 舉報

ID:73992 發(fā)表于 2025-3-22 10:57 | 顯示全部樓層
lyonkon 發(fā)表于 2025-3-22 01:21
請問, 下面代碼。變量a越界,將unsigned char a;   換成unsigned int a;硬件運行沒有達(dá)到想要的效果。 ...

換成unsigned int a = 0;問題解決。
回復(fù)

使用道具 舉報

ID:73992 發(fā)表于 2025-3-22 01:21 | 顯示全部樓層
188610329 發(fā)表于 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;硬件運行沒有達(dá)到想要的效果。因為無法軟件仿真,編譯器是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;
        }   
回復(fù)

使用道具 舉報

ID:73992 發(fā)表于 2025-3-15 20:10 來自手機 | 顯示全部樓層
188610329 發(fā)表于 2025-3-15 13:25
unsigned char data_array[10];
unsigned char *addr_point_0;
unsigned char *addr_point_1;

謝謝!
回復(fù)

使用道具 舉報

ID:73992 發(fā)表于 2025-3-15 13:25 來自手機 | 顯示全部樓層
cyi8 發(fā)表于 2025-3-15 10:37
1,指針變量要與指向的變量類型相同,即char *p=&n;其中n必須是char n,不然執(zhí)行程序時會強制轉(zhuǎn)換為指針相 ...

for(i=0;i<10;i++){
  data_arry【i】= front 【i】;
}
看這樣行不行,要是可以就不需要指針了
回復(fù)

使用道具 舉報

ID:624769 發(fā)表于 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);
}
回復(fù)

使用道具 舉報

ID:1121801 發(fā)表于 2025-3-15 10:37 | 顯示全部樓層
1,指針變量要與指向的變量類型相同,即char *p=&n;其中n必須是char n,不然執(zhí)行程序時會強制轉(zhuǎn)換為指針相同的類型,而且指針不能指向不同類型的變量。
2,我沒看明白你用char定義那個for循環(huán)的i 是什么意思??char是定義一個字符的,你能用來定義 i 然后跑循環(huán)?
3,for循環(huán)中為什么一個指針變量++,一個是指針變量的值++?
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表