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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于keil中C語言的();[];{}三種括號的使用

  [復制鏈接]
跳轉到指定樓層
樓主
ID:668004 發表于 2021-11-10 10:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
keil中C語言的();【】;{}三種括號的使用
  1. /*        名稱:K1-K4 控制數碼管加減演示
  2.         說明:按下K1后加1計數,按下K2后減1計數,按下K3后清零。
  3. */
  4. #include<reg51.h>
  5. #include<intrins.h>
  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. //段碼
  9. uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  10. //待顯示的3位緩沖
  11. uchar Num_Buffer[]={0,0,0};
  12. //按鍵代碼,按鍵計數
  13. uchar Key_Code,Key_Counts=0;
  14. //延時
  15. void DelayMS(uint x)
  16. {
  17.         uchar i;
  18.         while(x--) for(i=0;i<120;i++);
  19. }        
  20. //顯示函數
  21. void Show_Counts_ON_DSY()
  22. {
  23.         uchar i,j=0x01;
  24.         Num_Buffer[2]=Key_Counts/100;
  25.         Num_Buffer[1]=Key_Counts/10%10;
  26.         Num_Buffer[0]=Key_Counts%10;
  27.         for(i=0;i<3;i++)
  28.         {
  29.                 j=_cror_(j,1);
  30.                 P0=0xff;
  31.                 P0=DSY_CODE[Num_Buffer[i]];
  32.                 P2=j;
  33.                 DelayMS(1);
  34.         }
  35. }
  36. //主程序
  37. void main()
  38. {
  39.         uchar i;
  40.         P0=0xff;
  41.         P1=0xff;
  42.         P2=0x00;
  43.         Key_Code=0xff;
  44.         while(1)
  45.         {
  46.                 Show_Counts_ON_DSY();
  47.                 P1=0xff;
  48.                 Key_Code=P1;
  49.                 //有鍵按下時,數碼管刷新顯示30次,該行代碼同時起到延時作用
  50.                 if(Key_Code!=0xff)
  51.                 for(i=0;i<30;i++) Show_Counts_ON_DSY();
  52.                 switch(Key_Code)
  53.                 {
  54.                         case 0xfe: if(Key_Counts<255) Key_Counts++;
  55.                                                 break;
  56.                         case 0xfd: if(Key_Counts>0) Key_Counts--;
  57.                                                 break;
  58.                         case 0xfb: Key_Counts=0;
  59.                 }
  60.                 Key_Code=0xff;
  61.         }
  62. }
復制代碼

1.我想知道什么情況下要用空格、逗號?
2.什么情況下用小括號();中括號【】;還有大括號{}?

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

使用道具 舉報

沙發
ID:517951 發表于 2021-11-10 13:42 | 只看該作者
for() 等條件循環判斷語句,用(), 循環體用:
{
}
在c語言中沒有中括號【】
回復

使用道具 舉報

板凳
ID:878061 發表于 2021-11-10 13:51 | 只看該作者
一兩句話說不清楚,認真看書吧,學習沒有捷徑
回復

使用道具 舉報

地板
ID:892596 發表于 2021-11-10 14:14 | 只看該作者
怎么沒有中括號,數組下標就是中括號。
回復

使用道具 舉報

5#
ID:624769 發表于 2021-11-10 14:19 | 只看該作者
簡單講一下,如果看不懂,你只能翻書了。

1, 空格,只是為了好看,沒有實際意義,從頭到尾沒有空格也沒有關系,但是,你給一個變量,或者函數,比如變量:abc   當中加一個空格,那么,就會出錯。所以不知道加不加空格,可以選擇不加。
2,逗號,一般用來分隔同類型的東西,比如兩個變量之間,用逗號分隔,如: char  abc,def,hij;  就聲明了3個變量。
3,[]  很多人稱之為下標,我也不知道該叫啥,用來給數組定位的(聲明數組時用來定義數組長度)比如: char abc[16]; 聲明數組abc里面有16個內容,  abc[0] = 0x3f;  給abc數組的第0個 賦值 0x3f。
4,{}  用來包含一批代碼, 比如 if 的分支, for 的循環, 以及 void 的函數,算是一種封閉的結構吧。
5,() 這一般是用來給函數傳參的, 比如: delayms(100);  那么 就是把100這個值 一起 帶去執行delayms 這個子函數,起到延時100毫秒的目的,傳不同的參,就能得到不同的執行結果。

這樣,你能大致了解一下,如果還是不懂,只能去看書了,有些東西,不通過積累沒法明白,通過語言能傳遞的信息畢竟有限。
回復

使用道具 舉報

6#
ID:587810 發表于 2021-11-10 14:50 | 只看該作者
第二種沒用過,第一種用于包含函數,或者運算優先級(),第三種用于包含功能{ }
回復

使用道具 舉報

7#
ID:592807 發表于 2021-11-10 15:22 | 只看該作者
rayin 發表于 2021-11-10 13:42
for() 等條件循環判斷語句,用(), 循環體用:
{
}

他說的應該是數組[]用的中括號
回復

使用道具 舉報

8#
ID:824490 發表于 2021-11-10 21:48 | 只看該作者
1.我想知道什么情況下要用空格、逗號?
  空格不用說了吧?不同的單詞之間都是要用到空格來分開,
逗號常用于并列關系,比如:u8 i,j,k; 等效于 u8 i; u8 j; u8 k;
2.什么情況下用小括號();中括號【】;還有大括號{}?
小括號()用于附帶參數,比如:delay_ms(5);
中括號 []   用于數組,比如:u8 seg [10]
花括號{}   用于結構、函數、過程,比如:
void delay_ms(u8 count)
{  
//函數體
}
for(i=0;i<10;i++)
{
//循環體
}
以上只是冰山一角,無法一一說明。只要多看看、多想想,你就能明白。
回復

使用道具 舉報

9#
ID:668004 發表于 2021-11-11 17:54 | 只看該作者
Num_Buffer[2]=Key_Counts/100;         Num_Buffer[1]=Key_Counts/10%10;         Num_Buffer[0]=Key_Counts%10; 是說除以100取出整數,除以10取出余數,對10取余數?
回復

使用道具 舉報

10#
ID:668004 發表于 2021-11-11 18:00 | 只看該作者
黃youhui 發表于 2021-11-10 15:22
他說的應該是數組[]用的中括號

對  黃工
回復

使用道具 舉報

11#
ID:668004 發表于 2021-11-11 18:02 | 只看該作者
188610329 發表于 2021-11-10 14:19
簡單講一下,如果看不懂,你只能翻書了。

1, 空格,只是為了好看,沒有實際意義,從頭到尾沒有空格也沒 ...

非常感謝  講得很好  辛苦了
回復

使用道具 舉報

12#
ID:668004 發表于 2021-11-11 18:03 | 只看該作者
名字不是重點 發表于 2021-11-10 21:48
1.我想知道什么情況下要用空格、逗號?
  空格不用說了吧?不同的單詞之間都是要用到空格來分開,
逗號 ...

非常感謝  有水平 適合做老師
回復

使用道具 舉報

13#
ID:668004 發表于 2021-11-11 18:03 | 只看該作者
rayin 發表于 2021-11-10 13:42
for() 等條件循環判斷語句,用(), 循環體用:
{
}

輸入法的原因
回復

使用道具 舉報

14#
ID:668004 發表于 2021-11-11 18:04 | 只看該作者
huashanhui20 發表于 2021-11-10 13:51
一兩句話說不清楚,認真看書吧,學習沒有捷徑

看出效果不是很好  老是卡住啊
回復

使用道具 舉報

15#
ID:668004 發表于 2021-11-11 18:05 | 只看該作者
Num_Buffer[2]=Key_Counts/100;         Num_Buffer[1]=Key_Counts/10%10;         Num_Buffer[0]=Key_Counts%10; 是說除以100取出整數,除以10取出余數,對10取余數?
回復

使用道具 舉報

16#
ID:624769 發表于 2021-11-11 20:01 | 只看該作者
QWE4562012 發表于 2021-11-11 18:05
Num_Buffer[2]=Key_Counts/100;         Num_Buffer[1]=Key_Counts/10%10;         Num_Buffer[0]=Key_Coun ...

168 / 100  = 1
168 /10 % 10  = 6
168 % 10  = 8

把一個十進制數的每個位 都單獨取出來,這個應該不光是 單片機,不光是C 語言, 應該是所有的電子信息這塊的基礎知識了……
回復

使用道具 舉報

17#
ID:435676 發表于 2021-11-12 17:44 | 只看該作者
條件語句用小括號();一個事件用大括號{}
回復

使用道具 舉報

18#
ID:668004 發表于 2021-11-12 18:12 | 只看該作者
188610329 發表于 2021-11-11 20:01
168 / 100  = 1
168 /10 % 10  = 6
168 % 10  = 8

如果是1682  那

1682 / 100  = 1
1682 /1000% 100  = 6
1682/1000% 100% 10  = 8
1682 /1000% 100% 10%10  = 2
是否正確
回復

使用道具 舉報

19#
ID:668004 發表于 2021-11-12 19:09 | 只看該作者
188610329 發表于 2021-11-11 20:01
168 / 100  = 1
168 /10 % 10  = 6
168 % 10  = 8

如果是1682

1682 / 1000  = 1

1682/1000%100 = 6

1682/1000/100%10 = 8


1682%10 = 2




對嗎




回復

使用道具 舉報

20#
ID:624769 發表于 2021-11-12 21:51 | 只看該作者
QWE4562012 發表于 2021-11-12 19:09
如果是1682

1682 / 1000  = 1

1682/1000 = 1                     
1682/100%10 = 6
1682/10%10 = 8
1682 % 10 = 2

完整來講,其實就是:
1682/1000%10 = 1
1682/100%10 = 6
1682/10%10 = 8
1682/1%10 = 2
只是省略了不必要的計算步驟,

更高位數的自己一次類推吧……
回復

使用道具 舉報

21#
ID:668004 發表于 2021-11-18 19:18 | 只看該作者
188610329 發表于 2021-11-12 21:51
1682/1000 = 1                     
1682/100%10 = 6
1682/10%10 = 8

有規律不?這樣取余數 除以  變化很多的  看不懂  摸不著規律
回復

使用道具 舉報

22#
ID:624769 發表于 2021-11-18 19:51 | 只看該作者
QWE4562012 發表于 2021-11-18 19:18
有規律不?這樣取余數 除以  變化很多的  看不懂  摸不著規律

完整來講,其實就是:
1682/1000%10 = 1
1682/100%10 = 6
1682/10%10 = 8
1682/1%10 = 2
只是省略了不必要的計算步驟,

更高位數的自己一次類推吧……


我都寫成這樣了,你還看不明白規律么??
那么,我再加幾個空格……

1682   /  1000  %  10 = 1
1682   /  100    %  10 = 6
1682   /  10      %  10 = 8
1682   /  1        %  10 = 2

要是你還是看不懂,我只能去呼叫  yzwzfyz 了,他解釋東西似乎有一手。
回復

使用道具 舉報

23#
ID:982617 發表于 2021-11-19 18:34 | 只看該作者
1、單小括號 ()

①命令組。括號中的命令將會新開一個子shell順序執行,所以括號中的變量不能夠被腳本余下的部分使用。括號中多個命令之間用分號隔開,最后一個命令可以沒有分號,各命令和括號之間不必有空格。

②命令替換。等同于`cmd`,shell掃描一遍命令行,發現了$(cmd)結構,便將$(cmd)中的cmd執行一次,得到其標準輸出,再將此輸出放到原來命令。有些shell不支持,如tcsh。

③用于初始化數組。如:array=(a b c d)

2、雙小括號 (( ))

①整數擴展。這種擴展計算是整數型的計算,不支持浮點型。((exp))結構擴展并計算一個算術表達式的值,如果表達式的`結果為0,那么返回的退出狀態碼為1,或者 是"假",而一個非零值的表達式所返回的退出狀態碼將為0,或者是"true"。若是邏輯判斷,表達式exp為真則為1,假則為0。

②只要括號中的運算符、表達式符合C語言運算規則,都可用在$((exp))中,甚至是三目運算符。作不同進位(如二進制、八進制、十六進制)運算時,輸出結果全都自動轉化成了十進制。如:echo $((16#5f)) 結果為95 (16進位轉十進制)

③單純用 (( )) 也可重定義變量值,比如 a=5; ((a++)) 可將 $a 重定義為6

④常用于算術運算比較,雙括號中的變量可以不使用$符號前綴。括號內支持多個表達式用逗號分開。 只要括號中的表達式符合C語言運算規則,比如可以直接使用for((i=0;i<5;i++)), 如果不使用雙括號, 則為for i in `seq 0 4`或者for i in {0..4}。再如可以直接使用if (($i<5)), 如果不使用雙括號, 則為if [ $i -lt 5 ]。

下面的程序給多維數組初始化,注意初始化時花括號和小括號的區別

[cpp] view plain

#include

intmain()

{
inta[2][2]={(1,2),(3,4),};//如果把小括號換成花括號,結果就不一樣了,小括號(1,2)返回2(3,4)返回4,另外兩個元素默認是0

inti,j;

for(i=0;i<2;i++)

{
for(j=0;j<2;j++)

printf("%d",a[i][j]);

printf("

");

}

int*p=a[0];

printf("%d

",p[0]);

return0;

}

/*

運行結果:

24

00

2

*/
回復

使用道具 舉報

24#
ID:964308 發表于 2021-11-22 15:03 來自手機 | 只看該作者
通常大括號用來放語句,小括號用來放表達式,中括號還沒見過
回復

使用道具 舉報

25#
ID:964308 發表于 2021-11-22 15:04 來自手機 | 只看該作者
對了,數組下標就是中括號
回復

使用道具 舉報

26#
ID:983972 發表于 2021-11-24 23:00 | 只看該作者
不同的單詞之間都是要用到空格來分開, 逗號常用于并列關系。【】,{},()用于附帶參數。
回復

使用道具 舉報

27#
ID:139866 發表于 2021-12-1 15:56 | 只看該作者
如果看不進去書就把書上的代碼敲一遍,栗子中給的參數來回換著試試,如果靜不下心建議放棄這條路
回復

使用道具 舉報

28#
ID:984711 發表于 2021-12-1 18:06 | 只看該作者
這個怎么說呢,就是學習多了,你就會自然而然的懂了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧洲妇女成人淫片aaa视频 | 亚洲视频一区在线观看 | 免费在线观看一级毛片 | 欧美一区二区三区视频在线播放 | 免费观看一级毛片 | 日韩影音 | 亚洲精品综合一区二区 | 中文字幕在线中文 | 成人欧美一区二区三区在线观看 | 亚洲国产区 | 免费亚洲一区二区 | 亚洲免费在线 | 人人九九精 | 欧美亚洲国产成人 | 国产精品美女久久久免费 | 久久综合国产 | 国产精品福利视频 | 国产精品7777777 | 久久国产精品一区二区三区 | 久操伊人 | 蜜桃视频在线观看免费视频网站www | 欧美日韩亚洲国产 | 国产在线观看网站 | 亚洲精品一区二区在线观看 | 国产乱码精品一区二区三区忘忧草 | 国产91丝袜在线播放 | 欧美一区二区三区在线 | 欧美a√ | 日本欧美在线视频 | 欧美日本一区二区 | 夜夜骑首页 | 欧美日韩国产精品一区 | 国产精品伦一区二区三级视频 | 日本污视频 | 999国产精品视频免费 | 午夜精品久久久久久久久久久久 | 玖玖在线免费视频 | 天天草天天操 | 欧美成人一区二免费视频软件 | 在线免费观看成年人视频 | 国产一区二区三区四区 |