❶ 單片機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空間也行。