久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2120|回復: 5
打印 上一主題 下一主題
收起左側

麻煩大佬解答個C語言指針問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:1010435 發表于 2023-7-16 22:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
今天邊學習邊抄,自己修改了一個C語言函數,有個疑問,這個效果是在lcd指定的行,列顯示字符,
比如void display_charE8x16(0,0,“abc”) 就會在lcd 0行,0列顯示個abc;
有個問題想不明白,為啥必須加上while(*dp)循環,而且下面dp都++了,為啥循環了abc三次后就退出循環了?這個時候*dp等于0了?
不加while循環,只能顯示a,也就是字符串第一個。
  1. void display_charE8x16(unsigned char y,unsigned char x,unsigned char *dp)
  2. {
  3.         unsigned char i,j,z,mono_data;

  4.         while(*dp)        //
  5.         {
  6.                 j = *dp - 0x20;//獲取當前ascii字符減32后的值               
  7.                 for(i=0;i<16;i++)
  8.                 {
  9.                         set_lcd_address(y+i,x);         //定位起始字符在屏幕的位置。
  10.                         mono_data=ASCII16[j*16+i];        //j*16是定位ascii字符在ASCII16[]數組中的起始位置。
  11.                         for(z=3;z>0;z--)        
  12.                         {
  13.                                 data16bit(mono_data>>(z*3-3));                //整體分別移位6 3 0 共移動3次 取移動后最后三位 3bit
  14.                         }
  15.                 }
  16.         dp++;
  17.         x+=3;        //每次列加3        
  18.         }
  19. }
復制代碼



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

使用道具 舉報

沙發
ID:844772 發表于 2023-7-17 08:25 | 只看該作者
沒看全程序,但一般dp應該指向的是一個字符串吧?一個字符串一般是以\0結束的,所以查到\0就退出循環。
回復

使用道具 舉報

板凳
ID:744809 發表于 2023-7-17 08:39 | 只看該作者
“abc”是一個字符串,C語言中,字符串結尾會跟一個0x00,所以顯示到'c'的時候,再加1,就變成了0x00,也就跳出while循環了
回復

使用道具 舉報

地板
ID:1059989 發表于 2023-7-17 09:05 | 只看該作者
dp指向字符串"abc",*dp是取dp指針指向處的值,最開始時dp指向"abc"字符串的開頭,所以*dp是a,當dp++后,dp向前移動一個元素,指向"abc"字符串的第二個字符"b",...,依次類推,所以通過一個循環,不斷執行dp++,就可以用*dp取得字符串的每一個字符。while(*dp)意思是如果*dp不是0,則執行循環中的語句,如果*dp是0,則退出循環。
回復

使用道具 舉報

5#
ID:1088718 發表于 2023-7-17 12:49 | 只看該作者

“abc”是一個字符串,C語言中,字符串結尾會跟一個0x00,所以顯示到'c'的時候,再加1,就變成了0x00,也就跳出while循環了
回復

使用道具 舉報

6#
ID:123289 發表于 2023-7-17 15:46 | 只看該作者
想想顯示語句執行一次,可以向顯示屏上送幾個字符呢?
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区国产精品 | 九九热在线观看 | 999热视频 | 国产欧美日韩在线播放 | 看a网站| 亚洲一区二区在线视频 | 欧美一级毛片久久99精品蜜桃 | 国产精品久久久久久中文字 | 99热这里有精品 | 91毛片在线看 | 久久久毛片 | 91九色在线观看 | 在线观看日韩 | 先锋影音资源网站 | 综合久久综合久久 | 阿v视频在线观看 | 国产精品一区二 | 91国在线视频| 亚洲一区二区三区 | 国产精品亚洲成在人线 | 91麻豆蜜桃一区二区三区 | 日韩一区二区在线视频 | 看av在线 | 91丨九色丨国产在线 | 日本精品一区二区 | 日日摸夜夜添夜夜添特色大片 | 成人影院在线观看 | 日韩中文字幕在线视频 | 成人在线观看免费视频 | 日韩一区二区在线视频 | 韩三级在线观看 | 精品国产18久久久久久二百 | 亚洲一区二区三区在线 | 玩丰满女领导对白露脸hd | 久久久久久国产精品 | 国产高清在线观看 | 日韩一级免费观看 | 午夜欧美| 免费看a| 日本免费一区二区三区 | 国产探花在线观看视频 |