一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言總結(jié)_語(yǔ)句、運(yùn)算符

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 09:39 ? 次閱讀

當(dāng)前文章復(fù)盤C語(yǔ)言的: 位運(yùn)算運(yùn)算符、基本運(yùn)算符、數(shù)據(jù)類型、變量、for語(yǔ)句、while語(yǔ)句、goto語(yǔ)句、switch語(yǔ)句、運(yùn)算符優(yōu)先級(jí)強(qiáng)制轉(zhuǎn)換等。

一、變量的命名

變量的命名:   (13個(gè)字符)
1. A~Z  a~z
2. 0-9
3. _
4. 說(shuō)明:  只能字母和數(shù)字開(kāi)頭。不能使用關(guān)鍵字。
	//左值和右值
	unsigned int a=123;  //4個(gè)字節(jié)
	const int b=456;
	char c='A';
	float d=123.456; //123.456 浮點(diǎn)數(shù)常量
	char *p="123456"; //"123456"字符串常量

二、常量數(shù)據(jù)格式

#include "stdio.h"

//常量聲明: U和L 表示無(wú)符號(hào)長(zhǎng)整型
#define ABC 123UL
#define ABC 123ul

int main(void)
{
	//0b101010; //二進(jìn)制表示形式
	//0x123;    //表示十六進(jìn)制
	//123       //表示十進(jìn)制
	int a=0x123;
	return 0;
}

三、運(yùn)算符

3.1 邏輯非

#include "stdio.h"

//常量聲明: U和L 表示無(wú)符號(hào)長(zhǎng)整型
#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 位運(yùn)算

&  :全1為1,有0為0
|   :全0為0,有1為1
^  :相同為0,不同為1
~  :1為0,0位1
>> :右移運(yùn)算,低位溢出高位補(bǔ)0
<< :左移運(yùn)算符,高位溢出,低位補(bǔ)0

位運(yùn)算符使用較多的地方:
(1) 單片機(jī)寄存器操作

(2) 協(xié)議加密解密、壓縮算法、各種算法。

(3) 當(dāng)做標(biāo)志位使用

#include "stdio.h"
//系統(tǒng)里需要有8個(gè)狀態(tài)位,需要存放8個(gè)狀態(tài)位--------當(dāng)做寄存器使用
int main(void)
{
	unsigned char a=0; //8個(gè)位  范圍: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運(yùn)算符

?Sizeof運(yùn)算符
#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 三目運(yùn)算符

#include "stdio.h"
int main(void)
{
	/*
	int a;
	scanf("%d",&a);  //取地址
	
	int a,b;
	a=a&b; //與
	
	int a,b;
	a=a*b;  //乘號(hào)
	
	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ùn)算符的優(yōu)先級(jí)和強(qiáng)制轉(zhuǎn)換

#include "stdio.h"
int main(void)
{
	int a=123+456-12*5/78; //高優(yōu)先級(jí)先結(jié)合,再依次....
	//如果優(yōu)先級(jí)同級(jí),執(zhí)行順序是從左邊到右邊。
	//優(yōu)先級(jí)最高:()小括號(hào)
	
	int b=123456789;
	char a=(char)b; //強(qiáng)制轉(zhuǎn)換,只是取低8位
	                //欺騙編譯器,告訴它,b是char類型。
	
	char a='8';
	int b=(int)a; //強(qiáng)制轉(zhuǎn)換
	printf("b=%d\n",b); //還是字符8
	return 0;
}

四、語(yǔ)句

4.1 for循環(huán)語(yǔ)句

#include "stdio.h"
//系統(tǒng)里需要有8個(gè)狀態(tài)位,需要存放8個(gè)狀態(tài)位--------當(dāng)做寄存器使用
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)語(yǔ)句

?while循環(huán)語(yǔ)句
#include "stdio.h"

//系統(tǒng)里需要有8個(gè)狀態(tài)位,需要存放8個(gè)狀態(tài)位--------當(dāng)做寄存器使用
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語(yǔ)句

在平常的邏輯代碼里面,不推薦使用goto語(yǔ)句。
常用的地方: 錯(cuò)誤處理,某某程序初始化失敗,就釋放資源等操作。

#include "stdio.h"

//系統(tǒng)里需要有8個(gè)狀態(tài)位,需要存放8個(gè)狀態(tài)位--------當(dāng)做寄存器使用
int main(void)
{
	int cnt=0;
AA:	//標(biāo)簽的定義,可以放在函數(shù)范圍內(nèi)的任意位置。(不能超出函數(shù)范圍)
	printf("123\n");
	if(cnt==5)goto DATA;
	cnt++;
	goto AA;

DATA:	
	return 0;
} 

?Goto語(yǔ)句常用在錯(cuò)誤處理:
#include "stdio.h"

//goto語(yǔ)句在錯(cuò)誤處理里使用
int main(void)
{
	if(LED_Init()<0) //表示該函數(shù)返回值錯(cuò)誤
	{
		goto ERROR;
	}
	
	if(KEY_Init()<0) //表示該函數(shù)返回值錯(cuò)誤
	{
		goto ERROR;
	}
	
	/*....*/
	/*....*/
ERROR:
	//釋放資源,結(jié)束程序
	return 0;
}

4.4 Switch語(yǔ)句

Switch語(yǔ)句主要用在多分支選擇結(jié)構(gòu)----有很多種條件/情況。
實(shí)際代碼里,常用于菜單選擇:

#include "stdio.h"
int main(void)
{
	switch(cmd) //cmd的值傳入之后,與case后面的比較,成功之后再執(zhí)行語(yǔ)句
	{
		case 1: //case 后面值只能是常量,而且不能重復(fù)
			break; //跳出最近的一層switch語(yǔ)句
		case 2:
			{
				/*......*/
				break;
			}
		case 3:
			break;
		/*......*/
		
		default: //類似于else
			printf("所有的條件都不成立!\n");
	}
	return 0;
}

示例:

#include "stdio.h"

//投票系統(tǒng),有3個(gè)待選舉的人,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("請(qǐng)投票(范圍1~3):");
		scanf("%d",&data);
		switch(data) //data的值傳入之后,與case后面的比較,成功之后再執(zhí)行語(yǔ)句
		{
			case 1: //case 后面值只能是常量,而且不能重復(fù)
				A++;
				break; //跳出最近的一層switch語(yǔ)句
			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)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7628

    瀏覽量

    139697
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    172

    瀏覽量

    11293
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言基礎(chǔ)知識(shí)(4)--運(yùn)算符

    C語(yǔ)言中,運(yùn)算符包括有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符和位
    的頭像 發(fā)表于 06-15 09:38 ?4314次閱讀

    C語(yǔ)言運(yùn)算符的使用方法

    詳細(xì)介紹了C語(yǔ)言表達(dá)式、算術(shù)運(yùn)算符、賦值運(yùn)算符、關(guān)系運(yùn)算符、條件結(jié)構(gòu)、邏輯運(yùn)算符、位
    發(fā)表于 11-02 11:30 ?2137次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>運(yùn)算符</b>的使用方法

    C語(yǔ)言運(yùn)算符的優(yōu)先級(jí)和結(jié)合性

    執(zhí)行左邊的叫左結(jié)合性。 表達(dá)式(Expression)和語(yǔ)句(Statement)的概念在C語(yǔ)言中并沒(méi)有明確的定義: 表達(dá)式可以看做一個(gè)計(jì)算的公式,往往由數(shù)據(jù)、變量、運(yùn)算符等組成,例如
    發(fā)表于 07-06 06:46

    C語(yǔ)言程序設(shè)計(jì)--運(yùn)算符與表達(dá)式

    c語(yǔ)言對(duì)數(shù)據(jù)有很強(qiáng)的表達(dá)能力,具有十分豐富的運(yùn)算符,利用這些運(yùn)算符可以組成各種表達(dá)式及語(yǔ)句。運(yùn)算符
    發(fā)表于 07-14 21:30 ?46次下載

    C語(yǔ)言入門教程-運(yùn)算符優(yōu)先級(jí)

    運(yùn)算符優(yōu)先級(jí)C語(yǔ)言有豐富的運(yùn)算符。如果不清楚這些運(yùn)算符的優(yōu)先級(jí),則在同時(shí)使用多個(gè)運(yùn)算符時(shí)就容易產(chǎn)
    發(fā)表于 07-29 14:21 ?1372次閱讀

    單片機(jī)C語(yǔ)言教程-運(yùn)算符和表達(dá)式

    單片機(jī)C語(yǔ)言教程-運(yùn)算符和表達(dá)式   單片機(jī)C語(yǔ)言教程-運(yùn)算符和表達(dá)式  
    發(fā)表于 03-27 17:13 ?2286次閱讀

    C語(yǔ)言32個(gè)關(guān)鍵字九種控制語(yǔ)句34種運(yùn)算符

    C語(yǔ)言32個(gè)關(guān)鍵字九種控制語(yǔ)句34種運(yùn)算符 C語(yǔ)言32個(gè)關(guān)鍵字九種控制
    發(fā)表于 05-06 11:47 ?6次下載

    C語(yǔ)言運(yùn)算符的使用

    C語(yǔ)言運(yùn)算符的使用,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 08-23 17:56 ?0次下載

    單片機(jī)C語(yǔ)言編程常用的運(yùn)算符介紹

    新手適用的C語(yǔ)言運(yùn)算符總結(jié)
    發(fā)表于 01-01 21:52 ?4次下載

    C運(yùn)算符的優(yōu)先級(jí)和結(jié)合性詳細(xì)解決

    運(yùn)算符是一種告訴編譯器執(zhí)行特定的數(shù)學(xué)或邏輯操作的符號(hào)。 C語(yǔ)言內(nèi)置了豐富的運(yùn)算符,大體可分為10類:算術(shù)運(yùn)算符、關(guān)系
    的頭像 發(fā)表于 02-22 17:27 ?3479次閱讀

    c語(yǔ)言運(yùn)算符及例題

    C語(yǔ)言中邏輯運(yùn)算符包含邏輯與&&、邏輯或||、邏輯非!三種。其中邏輯與&&是雙目運(yùn)算符,即需要運(yùn)算符兩邊都要有表達(dá)式,且兩邊表達(dá)式都為真,此
    發(fā)表于 02-16 16:14 ?0次下載

    C語(yǔ)言運(yùn)算符

    C語(yǔ)言中,我們常常會(huì)用到表達(dá)式,在使用表達(dá)式的過(guò)程中便會(huì)使用到運(yùn)算符。C語(yǔ)言中,不同的運(yùn)算符
    的頭像 發(fā)表于 02-21 15:12 ?1404次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的<b class='flag-5'>運(yùn)算符</b>

    C語(yǔ)言中什么是關(guān)系運(yùn)算符

    C語(yǔ)言中,比較稱為關(guān)系運(yùn)算符,所謂關(guān)系運(yùn)算就是比較運(yùn)算,將兩個(gè)數(shù)值進(jìn)行比較,判斷其比較的結(jié)果
    的頭像 發(fā)表于 03-09 10:47 ?2709次閱讀

    C語(yǔ)言中算法運(yùn)算符的基本使用方法

    C語(yǔ)言的算數(shù)運(yùn)算符,是用來(lái)完成基本的算術(shù)運(yùn)算的符號(hào)。
    發(fā)表于 08-21 14:42 ?858次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中算法<b class='flag-5'>運(yùn)算符</b>的基本使用方法

    c語(yǔ)言從右到左的運(yùn)算符有哪些

    以下是一些主要的從右到左運(yùn)算C語(yǔ)言運(yùn)算符: 函數(shù)調(diào)用運(yùn)算符 ( () ):當(dāng)您調(diào)用一個(gè)函數(shù)時(shí),參數(shù)列表是從右到左進(jìn)行求值的。 后置遞增
    的頭像 發(fā)表于 08-20 11:39 ?1564次閱讀