當前文章復盤C語言的: 位運算運算符、基本運算符、數(shù)據(jù)類型、變量、for語句、while語句、goto語句、switch語句、運算符優(yōu)先級強制轉(zhuǎn)換等。
一、變量的命名
變量的命名: (13個字符)
1. A~Z a~z
2. 0-9
3. _
4. 說明: 只能字母和數(shù)字開頭。不能使用關鍵字。
//左值和右值
unsigned int a=123; //4個字節(jié)
const int b=456;
char c='A';
float d=123.456; //123.456 浮點數(shù)常量
char *p="123456"; //"123456"字符串常量
二、常量數(shù)據(jù)格式
#include "stdio.h"
//常量聲明: U和L 表示無符號長整型
#define ABC 123UL
#define ABC 123ul
int main(void)
{
//0b101010; //二進制表示形式
//0x123; //表示十六進制
//123 //表示十進制
int a=0x123;
return 0;
}
三、運算符
3.1 邏輯非
#include "stdio.h"
//常量聲明: U和L 表示無符號長整型
#define ABC 123UL
int main(void)
{
int a=0;
if(!a)
{
printf("為真!\n");
}
int data=1234;
printf("%d\n",!!data); //1
return 0;
}
3.2 位運算
& :全1為1,有0為0
| :全0為0,有1為1
^ :相同為0,不同為1
~ :1為0,0位1
>> :右移運算,低位溢出高位補0
<< :左移運算符,高位溢出,低位補0
(2) 協(xié)議加密解密、壓縮算法、各種算法。
(3) 當做標志位使用
#include "stdio.h"
//系統(tǒng)里需要有8個狀態(tài)位,需要存放8個狀態(tài)位--------當做寄存器使用
int main(void)
{
unsigned char a=0; //8個位 范圍:0~7
//如何將a第7位,置1呢?
a|=1<<7;
//如何將a第2位,置1呢?
a|=1<<2;
//將2的第3位和第4位置1
a|=0x3<<3;
//如何判斷第7位是0還是1呢?
if((a>>7)&0x1)
{
printf("第7位的值為真!\n");
}
else
{
printf("第7位的值為假!\n");
}
//bool sbit 位定義 。
//bool a; sbit LED1=P1^1;
return 0;
}
3.3 sizeof運算符
?Sizeof運算符
#include "stdio.h"
int main(void)
{
int a=1234;
printf("%d\n",sizeof(a)); //4
int b=1;
printf("%d\n",sizeof(b)); //4
return 0;
}
3.4 三目運算符
#include "stdio.h"
int main(void)
{
/*
int a;
scanf("%d",&a); //取地址
int a,b;
a=a&b; //與
int a,b;
a=a*b; //乘號
int *a; //指針類型
*/
int a;
a=8>5?123:456; //if(8>5){a=123;}else{a=456;}
printf("%d\n",a); //123
return 0;
}
3.5 運算符的優(yōu)先級和強制轉(zhuǎn)換
#include "stdio.h"
int main(void)
{
int a=123+456-12*5/78; //高優(yōu)先級先結(jié)合,再依次....
//如果優(yōu)先級同級,執(zhí)行順序是從左邊到右邊。
//優(yōu)先級最高:()小括號
int b=123456789;
char a=(char)b; //強制轉(zhuǎn)換,只是取低8位
//欺騙編譯器,告訴它,b是char類型。
char a='8';
int b=(int)a; //強制轉(zhuǎn)換
printf("b=%d\n",b); //還是字符8
return 0;
}
四、語句
4.1 for循環(huán)語句
#include "stdio.h"
//系統(tǒng)里需要有8個狀態(tài)位,需要存放8個狀態(tài)位--------當做寄存器使用
int main(void)
{
int a=123,b=456;
int cnt=0;
for(a=0;a<5;a++)
{
for(b=0;b<5;b++)
{
if(a==2)
{
break; //跳出最近的一層循環(huán)
}
cnt++;
}
}
/*
for(;;)
{
//死循環(huán)
}
while(1)
{
//死循環(huán)
}
do
{
//死循環(huán)
}while(1);
*/
printf("cnt=%d\n",cnt);//20
return 0;
}
4.2 while循環(huán)語句
?while循環(huán)語句
#include "stdio.h"
//系統(tǒng)里需要有8個狀態(tài)位,需要存放8個狀態(tài)位--------當做寄存器使用
int main(void)
{
int a=0,b=0;
int cnt=0;
while(a<5)
{
while(b<5)
{
if(a==2)break;
b++;
cnt++;
}
b=0;
a++;
}
printf("cnt=%d\n",cnt);//20
return 0;
}
4.3 goto語句
在平常的邏輯代碼里面,不推薦使用goto語句。
常用的地方: 錯誤處理,某某程序初始化失敗,就釋放資源等操作。
#include "stdio.h"
//系統(tǒng)里需要有8個狀態(tài)位,需要存放8個狀態(tài)位--------當做寄存器使用
int main(void)
{
int cnt=0;
AA: //標簽的定義,可以放在函數(shù)范圍內(nèi)的任意位置。(不能超出函數(shù)范圍)
printf("123\n");
if(cnt==5)goto DATA;
cnt++;
goto AA;
DATA:
return 0;
}
?Goto語句常用在錯誤處理:
#include "stdio.h"
//goto語句在錯誤處理里使用
int main(void)
{
if(LED_Init()<0) //表示該函數(shù)返回值錯誤
{
goto ERROR;
}
if(KEY_Init()<0) //表示該函數(shù)返回值錯誤
{
goto ERROR;
}
/*....*/
/*....*/
ERROR:
//釋放資源,結(jié)束程序
return 0;
}
4.4 Switch語句
Switch語句主要用在多分支選擇結(jié)構(gòu)----有很多種條件/情況。
實際代碼里,常用于菜單選擇:
#include "stdio.h"
int main(void)
{
switch(cmd) //cmd的值傳入之后,與case后面的比較,成功之后再執(zhí)行語句
{
case 1: //case 后面值只能是常量,而且不能重復
break; //跳出最近的一層switch語句
case 2:
{
/*......*/
break;
}
case 3:
break;
/*......*/
default: //類似于else
printf("所有的條件都不成立!\n");
}
return 0;
}
示例:
#include "stdio.h"
//投票系統(tǒng),有3個待選舉的人,A,B,C ,有10張票
int main(void)
{
int i;
int A=0,B=0,C=0;
int data;
for(i=0;i<10;i++)
{
printf("請投票(范圍1~3):");
scanf("%d",&data);
switch(data) //data的值傳入之后,與case后面的比較,成功之后再執(zhí)行語句
{
case 1: //case 后面值只能是常量,而且不能重復
A++;
break; //跳出最近的一層switch語句
case 2:
B++;
break;
case 3:
C++;
break;
// default: //類似于else
}
}
printf("A=%d\n",A);
printf("B=%d\n",B);
printf("C=%d\n",C);
return 0;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7630瀏覽量
140643 -
運算符
+關注
關注
0文章
172瀏覽量
11376
發(fā)布評論請先 登錄
相關推薦
熱點推薦
C語言運算符的優(yōu)先級和結(jié)合性
執(zhí)行左邊的叫左結(jié)合性。 表達式(Expression)和語句(Statement)的概念在C語言中并沒有明確的定義: 表達式可以看做一個計算的公式,往往由數(shù)據(jù)、變量、運算符等組成,例如
發(fā)表于 07-06 06:46
C語言程序設計--運算符與表達式
c語言對數(shù)據(jù)有很強的表達能力,具有十分豐富的運算符,利用這些運算符可以組成各種表達式及語句。運算符
發(fā)表于 07-14 21:30
?46次下載
C語言入門教程-運算符優(yōu)先級
運算符優(yōu)先級C語言有豐富的運算符。如果不清楚這些運算符的優(yōu)先級,則在同時使用多個運算符時就容易產(chǎn)
發(fā)表于 07-29 14:21
?1401次閱讀
C運算符的優(yōu)先級和結(jié)合性詳細解決
運算符是一種告訴編譯器執(zhí)行特定的數(shù)學或邏輯操作的符號。
C語言內(nèi)置了豐富的運算符,大體可分為10類:算術(shù)運算符、關系
c語言運算符及例題
C語言中邏輯運算符包含邏輯與&&、邏輯或||、邏輯非!三種。其中邏輯與&&是雙目運算符,即需要運算符兩邊都要有表達式,且兩邊表達式都為真,此
發(fā)表于 02-16 16:14
?0次下載
C語言中什么是關系運算符
在C語言中,比較符稱為關系運算符,所謂關系運算就是比較運算,將兩個數(shù)值進行比較,判斷其比較的結(jié)果
c語言從右到左的運算符有哪些
以下是一些主要的從右到左運算的C語言運算符: 函數(shù)調(diào)用運算符 ( () ):當您調(diào)用一個函數(shù)時,參數(shù)列表是從右到左進行求值的。 后置遞增
評論