文章目錄
- 常量
- 1. C語言中的常量分為以下以下幾種:
- 2. 舉例:
- 字串+轉義字符+注釋
- 1. `"這一句話都算是一個字串abc"`
- 2. 轉義字符
- 3. 注釋
- 選擇陳述句
- 回圈陳述句
- 函式
- 陣列
- 1. 陣列的使用
- 運算子.簡單介紹
- 2. 左移、右移運算子
- 3. 位運算子
- 4. 賦值運算子
- 5. 單目運算子
- 2. 前置++,后置++ 的詳細區分
- 6. 關系運算子
- 7. 邏輯運算子
- 8. 條件運算子
- 9. 逗號運算式
- 10. 下標參考、函式呼叫和結構成員
- GG.
基本認識一下,不做深入了解,知道有這么個概念,
常量
1. C語言中的常量分為以下以下幾種:
- 字面常量
- const 修飾的常變數:本質還是個變數,

- #define 定義的識別符號常量
- 列舉常量
2. 舉例:
int main()
{
3.14;字面常量
1000;字面常量
const float pai = 3.14f; const 修飾的常量
pai = 5.14; 錯誤: pai的值改不了
#define MAX 100 #define的識別符號常量
n=MAX;可以; MAX=10;改不了,
return 0;
}
列舉型別的常量
enum Options 列舉型別關鍵字:enum
{
exit, 0
add, 1
del 2
};
字串+轉義字符+注釋
1. "這一句話都算是一個字串abc"
-
由雙引號引起來的一串字符稱為字串,或者叫字串字面值,
-
字串的結束標志是
'\0',是字串的結束標志,不算做字串的內容, -

-
沒有
'\0'的情況
int main()
{
char arr1[] = "bit";
char arr2[] = {'b', 'i', 't'}; 單引號引起來的叫 單個字符,
char arr3[] = {'b', 'i', 't', '\0'};
printf("%s\n", arr1);
printf("%s\n", arr2);bit后面還有隨機字符
printf("%s\n", arr3);
return 0;
}
2. 轉義字符
- 假如我們要在螢屏上列印一個目錄:
c:\code\test.c - 實際輸出是這樣的:

\t就是一個轉義字符,下面是計算機常用轉義字符:它告訴編譯器需要用特殊的方式進行處理,
- 關于ASCII碼表:鍵盤上所有的字母、標點符號等都是轉換為ASCII值存盤在記憶體中,

3. 注釋
// 或者 /* */// 后面寫注釋,交代這段代碼是干嘛的
選擇陳述句
int main()
{
int coding = 0;
printf("你會去敲代碼嗎?(選擇1 or 0):>");
scanf("%d", &coding);
if(coding == 1)
{
prinf("堅持,你會有好offer\n");
}
else
{
printf("放棄,回家賣紅薯\n");
}
return 0;
}
回圈陳述句
include <stdio.h>
int main()
{
printf("好好學習\n");
int line = 0;
while(line<=20000)
{
line++;
printf("我要繼續努力敲代碼\n");
}
if(line>20000)
printf("贏取白富美\n");
return 0;
}
函式
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("輸入兩個運算元:>");
scanf("%d %d", &a, &b);
sum = num1 + num2;
printf("sum = %d\n", sum);
return 0;
}
上述代碼,寫成函式如下,:簡化代碼,代碼復用,
#include <stdio.h>
int Add(int x, int y)
{
int z = x+y;
return z;
}
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
printf("輸入兩個運算元:>");
scanf("%d %d", &num1, &num2);
sum = Add(num1, num2);
printf("sum = %d\n", sum);
return 0;
}

陣列
怎么存盤1-10的數字呢?陣列 :一組相同型別資料的集合,集合里的每一項稱為元素,
int arr[10] = {1,2,3,4,5,6,7,8,9,10};//定義一個整形陣列,最多放10個元素
1. 陣列的使用
int main()
{
int i = 0;
int arr[10] = {1,2,3,4,5,6,7,8,9,10};
for(i=0; i<10; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
運算子.簡單介紹
%取模,求余數,
2. 左移、右移運算子
-

-
左移運算子(<<):有乘2的效果
左移運算子(<<)
按二進制形式把所有的數字向左移動對應的位數,高位移出(舍棄),低位的空位補零,
語法格式:
需要移位的數字 << 移位的次數 例如: 3 << 2,則是將數字3左移2位
計算程序:
3 << 2
首先把3轉換為二進制數字0000 0000 0000 0000 0000 0000 0000 0011,
然后把該數字高位(左側)的兩個零移出,其他的數字都朝左平移2位, 最后在低位(右側)的兩個空位補零,
則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 1100,則轉換為十進制是12,
數學意義:
在數字沒有溢位的前提下,對于正數和負數,左移一位都相當于乘以2的1次方,左移n位就相當于乘以2的n次方,
- 右移運算子(>>):有除2的效果
二進制形式把所有的數字向右移動對應位移位數,低位移出(舍棄),高位的空位補符號位,即正數補零,負數補1,
語法格式:
需要移位的數字 >> 移位的次數
例如11 >> 2,則是將數字11右移2位
計算程序:
11的二進制形式為:0000 0000 0000 0000 0000 0000 0000 1011,
然后把低位的最后兩個數字移出,因為該數字是正數,所以在高位補零,
則得到的最終結果是0000 0000 0000 0000 0000 0000 0000 0010,轉換為十進制是2,
數學意義:
右移一位相當于除2,右移n位相當于除以2的n次方,
3. 位運算子
&按位與按位與運算子"&"是雙目運算子,只有對應的兩個二進制位均為1時,結果位才為1 ,否則為0,參與運算的數以補碼方式出現,
|按位或參與運算的兩數各對應的二進位相或,只要對應的二個二進位有一個為1時,結果位就為1,參與運算的兩個數均以補碼出現,
^按位異或參與運算的兩數各對應的二進位相異或,當兩對應的二進位相異時,結果為1,參與運算元仍以補碼出現,
·~· 按位取反
求反運算子~為單目運算子,具有右結合性, 其功能是對參與運算的數的各二進位按位求反,
0000—>>1111
4. 賦值運算子

a=a+1;等于 a+=1;其余類似,
5. 單目運算子
-

!計算機的判斷條件是非0為真,若!0,則為真,
~
2. 前置++,后置++ 的詳細區分
原文地址
sizeof(int) 求1個整型的記憶體大小,單位是位元組,- &和*
&和*
& 取出某個資料的地址,: int a=10; p=&a;
* 通過記憶體地址找到該變數的位置,并且改變了它的值,
*p=20
- (型別)
(int)強制轉換為int型別 (char)強制轉換為char型別
6. 關系運算子
7. 邏輯運算子
&& 并且的意思,a>0 && b>0
|| 或者的意思,a<0 || a>9
8. 條件運算子
運算式為:運算式1?運算式2:運算式3
先求解運算式1,
若其值為真(非0)則將運算式2的值作為整個運算式的取值,
否則(運算式1的值為0)將運算式3的值作為整個運算式的取值,
例如:
1、max=(a>b)?a:b a>b 為真嗎?為真就為a,為假就為b.
就是將a和b二者中較大的一個賦給max,
2、min=(a<b)?a:b
就是將a和b二者中較小的一個賦給min,
9. 逗號運算式
(運算式1,運算式2,運算式3,...... ,運算式n)
逗號運算式的要領:
(1) 逗號運算式的運算程序為:從左往右逐個計算運算式,
(2) 逗號運算式作為一個整體,它的值為最后一個運算式(也即運算式n)的值,
(3) 逗號運算子的優先級別在所有運算子中最低,
10. 下標參考、函式呼叫和結構成員
[] 陣列下標
()函式呼叫,
. 結構體.成員
-> 指標地址指向它的成員
GG.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/278510.html
標籤:其他
上一篇:和阿里P8大佬面試互懟了半小時的Fork/Join的原理!
下一篇:TCP ,你丫的終于來了!!!


