C語言操作符、關鍵字、static作用

2020-08-12 18:39:05

**

c語言操作符

**
1.算術操作符
printf("%d\n",7 / 2.0); 3.5 (除號)
printf("%d\n",7 / 2); 3
printf("%d\n",7 % 2); 1 (取模的餘數)
2.移位元運算符
右移 >>
int a = 8; //本質上移動8的二進制(1000)右移一位
int b = a >> 1;//輸出爲4(0100)
3.位元運算符
&按位元與 ^按(二進制)位互斥或 | 按位元或
4.賦值操作符
= += -=
5.單目操作符
!邏輯反操作
sizeof(計算的是變數所佔內出空間的大小單位爲位元組)
~ 按位元取反
二進制表示形式:原碼、反碼、二補數
100000000000000000000000000000001 - 原碼
111111111111111111111111111111110- 反碼
111111111111111111111111111111111- 二補數
整數在記憶體中儲存的是二進制表示的二補數
正整數的原碼反碼二補數相同
++ –
6.強制轉換符 ()
7.邏輯與 && 邏輯或||
8.條件操作符
exp1 ? exp2 : exp3// 1爲真,2爲最終結果,1爲假,3爲最終結果9
9.逗號表達式
從左至右依次計算,但是整個表達式的結果是最後一個表達式結果
exp1 , exp2 , exp3

關鍵字

1.auto區域性變數都是自動建立自動銷燬,一般省略 auto int
2.continue - 回圈
3.case - switch case
4.default – 應用於switch
5.enum 列舉
6.extern 宣告外部語句的
7.register 暫存器(一種記憶體)
8.signed 有符號 unsigned 無符號的
9.static 靜態的 可以修飾區域性變數,改變的是區域性變數的生命週期(變長),和程式的生命週期一樣長
10.typedef 型別定義 //typedef unsigned int uint;
11.union 聯合體或共用體
12.volatile

static

1.可以修飾區域性變數,改變的是區域性變數的生命週期(變長),和程式的生命週期一樣長

#include <stdio.h>
int sum(int a)
{
	int c = 0; 
	static int b = 3;//第一次i = 0,b = 3,第二次i = 1,b = 5
	c += 1;
	b += 2;
	return (a + b + c);
}
int main()
{
	int i;
	int a = 2;
	for (i = 0; i < 5; i++)
	{
		printf("%d,", sum(a));//8 10 12 14 16
	}
}
#include <stdio.h>
int sum(int a)
{
	int c = 0; 
	int b = 3;//一次回圈過後銷燬,第二次從新建立
	c += 1;
	b += 2;//第一次i = 0,b = 5,第二次回圈b = 5
	return (a + b + c);
}
int main()
{
	int i;
	int a = 2;
	for (i = 0; i < 5; i++)
	{
		printf("%d,", sum(a));// 8 8 8 8 8
	}
}

2.修飾全域性變數
改變了這個全域性變數的作用域,只能在原始檔內部使用
3.修飾函數
改變了這個函數的使用範圍,這個函數只能在這個函數的原始檔內部使用