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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

麻煩大佬解答個(gè)C語(yǔ)言指針問(wèn)題

[復(fù)制鏈接]
ID:1010435 發(fā)表于 2023-7-16 22:48 | 顯示全部樓層 |閱讀模式
今天邊學(xué)習(xí)邊抄,自己修改了一個(gè)C語(yǔ)言函數(shù),有個(gè)疑問(wèn),這個(gè)效果是在lcd指定的行,列顯示字符,
比如void display_charE8x16(0,0,“abc”) 就會(huì)在lcd 0行,0列顯示個(gè)abc;
有個(gè)問(wèn)題想不明白,為啥必須加上while(*dp)循環(huán),而且下面dp都++了,為啥循環(huán)了abc三次后就退出循環(huán)了?這個(gè)時(shí)候*dp等于0了?
不加while循環(huán),只能顯示a,也就是字符串第一個(gè)。
  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;//獲取當(dāng)前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字符在A(yíng)SCII16[]數(shù)組中的起始位置。
  11.                         for(z=3;z>0;z--)        
  12.                         {
  13.                                 data16bit(mono_data>>(z*3-3));                //整體分別移位6 3 0 共移動(dòng)3次 取移動(dòng)后最后三位 3bit
  14.                         }
  15.                 }
  16.         dp++;
  17.         x+=3;        //每次列加3        
  18.         }
  19. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:844772 發(fā)表于 2023-7-17 08:25 | 顯示全部樓層
沒(méi)看全程序,但一般dp應(yīng)該指向的是一個(gè)字符串吧?一個(gè)字符串一般是以\0結(jié)束的,所以查到\0就退出循環(huán)。
回復(fù)

使用道具 舉報(bào)

ID:744809 發(fā)表于 2023-7-17 08:39 | 顯示全部樓層
“abc”是一個(gè)字符串,C語(yǔ)言中,字符串結(jié)尾會(huì)跟一個(gè)0x00,所以顯示到'c'的時(shí)候,再加1,就變成了0x00,也就跳出while循環(huán)了
回復(fù)

使用道具 舉報(bào)

ID:1059989 發(fā)表于 2023-7-17 09:05 | 顯示全部樓層
dp指向字符串"abc",*dp是取dp指針指向處的值,最開(kāi)始時(shí)dp指向"abc"字符串的開(kāi)頭,所以*dp是a,當(dāng)dp++后,dp向前移動(dòng)一個(gè)元素,指向"abc"字符串的第二個(gè)字符"b",...,依次類(lèi)推,所以通過(guò)一個(gè)循環(huán),不斷執(zhí)行dp++,就可以用*dp取得字符串的每一個(gè)字符。while(*dp)意思是如果*dp不是0,則執(zhí)行循環(huán)中的語(yǔ)句,如果*dp是0,則退出循環(huán)。
回復(fù)

使用道具 舉報(bào)

ID:1088718 發(fā)表于 2023-7-17 12:49 | 顯示全部樓層

“abc”是一個(gè)字符串,C語(yǔ)言中,字符串結(jié)尾會(huì)跟一個(gè)0x00,所以顯示到'c'的時(shí)候,再加1,就變成了0x00,也就跳出while循環(huán)了
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2023-7-17 15:46 | 顯示全部樓層
想想顯示語(yǔ)句執(zhí)行一次,可以向顯示屏上送幾個(gè)字符呢?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产伦精品一区二区三毛 | 中文字幕视频在线看5 | 国产欧美日韩一区二区三区 | v片网站 | 国产资源在线观看 | 日本高清视频在线播放 | 午夜日韩视频 | 国产丝袜一区二区三区免费视频 | 欧美 日韩 国产 成人 | 91麻豆精品国产91久久久更新资源速度超快 | 精品国产乱码久久久久久1区2区 | 久久9精品| 久久精品亚洲一区 | 爱草在线 | 国产一区二区三区视频免费观看 | 亚洲三区在线播放 | 国产精品成人一区二区三区 | 一区二区三区精品 | 99久久婷婷| 日本一区二区高清不卡 | 久久国产秒 | 北条麻妃一区二区三区在线视频 | 99国内精品久久久久久久 | 欧美一级欧美一级在线播放 | 久久国产婷婷国产香蕉 | 日韩精品成人 | 91免费观看国产 | 日本视频一区二区三区 | 欧美大片黄 | 亚洲免费一区 | 91视频国产一区 | 日韩美女爱爱 | 最近中文字幕免费 | 亚洲国产第一页 | 日本在线播放一区二区 | 亚洲精品在线观 | 超碰成人免费 | 一区二区三区不卡视频 | 在线视频日韩精品 | 欧美日韩在线不卡 | 国产一区二区在线91 |