目錄
1.數據類型的取值范圍
2.變量
2.1 變量的創建
2.2 變量的分類
2.3全局變量和局部變量在內存中的存儲?編輯
3. 算術操作符:+ 、 - 、* 、/? 、%
?3.1 + 和 -
3.2 *
3.3 /
3.4 %
1.數據類型的取值范圍
每一種數據類型有自己的取值范圍,也就是存儲的數值的最大值和最小值的區間
如果要查看當前系統上不同數據類型的極限值:
limits.h 文件中說明了整型類型的取值范圍
float.h 這個頭文件中說明浮點型類型的取值范圍
? SCHAR_MIN , SCHAR_MAX :signed char 的最小值和最大值。
? SHRT_MIN , SHRT_MAX :short 的最小值和最大值。
? INT_MIN , INT_MAX :int 的最小值和最大值。
? LONG_MIN , LONG_MAX :long 的最小值和最大值。
? LLONG_MIN , LLONG_MAX :long long 的最小值和最大值。
? UCHAR_MAX :unsigned char 的最大值。
? USHRT_MAX :unsigned short 的最大值。
? UINT_MAX :unsigned int 的最大值。
? ULONG_MAX :unsigned long 的最大值。
? ULLONG_MAX :unsigned long long 的最大值。
2.變量
2.1 變量的創建
?C語言中把經常變化的值稱為變量,不變的值稱為常量
data_type? ?name;
? ? ? |? ? ? ? ? ? ? ? ?|
? ? ? |? ? ? ? ? ? ? ? ?|
?數據類型? ? 變量名
int age; //整型變量
char ch; //字符變量
double weight; //浮點型變量
變量在創建的時候給一個初始值(賦值),即初始化
int age = 18;
char ch = 'w';
double weight = 48.0;
unsigned int height = 100;
這種變量為局部變量,局部變量未初始化則為隨機值
2.2 變量的分類
? 全局變量:在大括號外部定義的變量就是全局變量
? 全局變量的使用范圍更廣,可以在整個工程的任意位置使用
? 局部變量:在大括號內部定義的變量就是局部變量
? 局部變量的使用范圍是比較局限,只能在自己所在的局部范圍內使用
#include <stdio.h>
int global = 2023;//全局變量
int main()
{int local = 2018;//局部變量printf("%d\n", local);printf("%d\n", global);return 0;
}
當局部變量和全局變量同名的時候,局部變量優先使用
#include <stdio.h>
int n = 1000;
int main()
{int n = 10;printf("%d\n" n);//打印的結果是10return 0;
}
2.3全局變量和局部變量在內存中的存儲
程序運行起來要在是要在內存中申請空間,內存分為三個區域:棧區、堆區、靜態區。
1. 局部變量是放在內存的棧區
2. 全局變量是放在內存的靜態區
3. 堆區是用來動態內存管理的
3. 算術操作符:+ 、 - 、* 、/? 、%
C語言中為了方便運算,提供了一系列操作符,其中有一組操作符叫:算術操作符。分別是: + - * \ % ,這些操作符都是雙目操作符
注:操作符也被叫做:運算符
?3.1 + 和 -
+ 和 -? 都是有2個操作數的,位于操作符兩端的就是它們的操作數,這種操作符也叫雙目操作符
#include <stdio.h>
int main()
{int x = 4 + 22;int y = 61 - 23;printf("%d\n", x);printf("%d\n", y);return 0;
}
3.2 *
#include <stdio.h>
int main()
{int num = 5;printf("%d\n", num * num); // 輸出 25return 0;
}
3.3 /
除號的兩端如果是整數,執行的是整數除法,得到的結果也是整數
#include <stdio.h>
int main()
{float x = 6 / 4;int y = 6 / 4;printf("%f\n", x); // 輸出 1.000000printf("%d\n", y); // 輸出 1return 0;
}
上面示例中,盡管變量x 的類型是float (浮點數),但是6 / 4 得到的結果是1.0而不是1.5,這是因
為C語言的整數除法是整除,只會返回整數部分,丟棄小數部分。
如果希望得到浮點數的結果,兩個運算數必須至少有一個浮點數,這時 C 語言就會進行浮點數除
法
#include <stdio.h>
int main()
{float x = 6.0 / 4; // 或者寫成 6 / 4.0printf("%f\n", x); // 輸出 1.500000return 0;
}
同理:
#include <stdio.h>
int main()
{int score = 5;score = (score / 20) * 100;return 0;
}
上面的代碼,你可能覺得經過運算, score 會等于25 ,但是實際上score 等于0 。這是因為score /
20 是整除,會得到一個整數值0 ,所以乘以100 后得到的也是0
為了得到預想的結果,可以將除數20 改成20.0 ,讓整除變成浮點數除法。
#include <stdio.h>
int main()
{int score = 5;score = (score / 20.0) * 100;return 0;
}
3.4 %
運算符 % 表示求模運算,即返回兩個整數相除的余值。這個運算符只能用于整數,不能用于浮點
數
1)正數求模
#include <stdio.h>
int main()
{int x = 6 % 4; // 2return 0;
}
2)負數求模
負數求模的結果的正負號由第一個運算數的正負號決定
#include <stdio.h>
int main()
{printf("%d\n", 11 % -5); // 1printf("%d\n",-11 % -5); // -1printf("%d\n",-11 % 5); // -1return 0;
}
第一個運算數的正負號( 11 或-11 )決定了結果的正負號
謝謝觀看