找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3083|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

【問題】關(guān)于51指針的程序錯誤,求解答

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:126286 發(fā)表于 2017-2-26 16:37 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

這個是按書上寫的程序
*ptrTxd 和 array1[]都是定義成unsigned char型的
但是編譯的時候卻被警告(ptrTxd = array1;警告錯誤),并且程序下載到單片機里并沒有實現(xiàn)相應(yīng)的功能


然后我把ptrTxd = array1;改成了ptrTxd =& array1[0];就沒有警告了,并且程序的結(jié)果是對的。



但是這兩種數(shù)組元素指針的表達是等價的,都是對的。所以不太明白其中出現(xiàn)了什么問題!
有知道的大神幫忙解答一下嗎?謝謝了!




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:153041 發(fā)表于 2017-2-27 15:41 | 只看該作者
應(yīng)該是51的C編譯器特性,和標(biāo)準(zhǔn)C在編譯處理上有很大的差異。
回復(fù)

使用道具 舉報

板凳
ID:111634 發(fā)表于 2017-2-27 16:27 | 只看該作者
本帖最后由 zl2168 于 2017-2-27 16:37 編輯

一般的程序何必一定要用指針?有些單片機教材說:沒有掌握指針,就等于沒有掌握c語言,真是聳人聽聞,令初學(xué)者望而生畏。
對一般c語言應(yīng)用,似乎還有些道理。對c51編程,就沒有道理!中小規(guī)模應(yīng)用程序,包括不很復(fù)雜的大規(guī)模應(yīng)用程序,不用指針,完全可以應(yīng)付。例如,張志良編著的《80C51單片機仿真設(shè)計實例教程——基于Keil C和Proteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機應(yīng)用100案例,一個也未用指針,用數(shù)組不是照樣實現(xiàn)各種較復(fù)雜的功能?原因是什么?因為80C51單片機本身具有間址功能。
回復(fù)

使用道具 舉報

地板
ID:166942 發(fā)表于 2017-2-27 16:34 | 只看該作者
表示我也遇到過這個問題
回復(fù)

使用道具 舉報

5#
ID:166942 發(fā)表于 2017-2-27 16:35 | 只看該作者
表示我也遇到過這個問題
回復(fù)

使用道具 舉報

6#
ID:126286 發(fā)表于 2017-3-1 12:09 | 只看該作者
好像是編譯器的問題,同樣的把array1強制類型轉(zhuǎn)換(unsigned char *)一樣可以,結(jié)果也正確。
回復(fù)

使用道具 舉報

7#
ID:126286 發(fā)表于 2017-3-1 12:10 | 只看該作者
utzuzu 發(fā)表于 2017-2-27 15:41
應(yīng)該是51的C編譯器特性,和標(biāo)準(zhǔn)C在編譯處理上有很大的差異。

嗯嗯,確實。我把array1強制類型轉(zhuǎn)換就對了
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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