c語言的數據類型,運算符,存儲類型


【1詞法符號】
1. 關鍵字:32個
1) 存儲類型:決定(設備)變量的存儲位置
auto(自動型).extern(外部引用) static(靜態型) register(寄存器類型)
2) 數據類型:決定設備在對應位置所占的空間大小
char (字符型) int(整型) short(短整型) long(長整型) float(單精度浮點類型) double(雙精度浮點類型) signed(有符號)
unsigned(無符號)
3)控制語句:if ,else ,switch , case ,break ,default ,for , while ,do
Goto(跳轉) ,continue ,return
4)構造函數類型:struct(結構體) union(共用體) enum(枚舉)
5)雜項:const(常量化) sizeof(計算數據所占空間大小) typedef(重定義) ,void(空,修飾指針,不能修飾變量;作為函數的返回值;作為函數的參數 ) volatile(防止被編譯器優化)


2.標識符:用於定義宏名,變量名,函數名和自定義的類型名
1)標識符由一個或者多個字母,數字,或者下划線組成
2)標識符的第一個字符必須是字母 或者下划線
3)不能與任何關鍵字相同
變量:在程序運行期間值可以發生變化的量
格式:存儲類型 數據類型 變量化
Int a =4;
沒有被初始化的的全局變量存儲在.bss段 ,存儲在該段的初值都為0
局部變量存儲在棧區,由系統自動分配並釋放
Int a=10 //定義變量的時候並初始化
2. 算數運算:
1):+ - * / % ++ --
Int a=5/2; =2
除號:向下取整
%:運算符左右兩側只能是整數
#include<stdio.h>
Int main()
{
Int a=5;
Printf(“%d\n”,a++); 結果是5(先取值,再自加)
Printf(“%d\n”,++a); 結果是7 (先自加,再取值)

return 0;
}
答案: 5 ,7

2)關系運算 > >= < <= == !=

3) 賦值運算:+= -= *= /= &= =
sum+=i;  sum=sum+I;

4) 邏輯運算:&&(邏輯與) ||(邏輯或) !(邏輯非)
&&:全真為真 ,一假則假
//串聯:有一假,則后面的表達式將不被執行
Int a =3 ,b=4 ,b=4;
Int c =a>b && b++;
結果:c=0 ,b=4;
||:一真則真,全假則假
//並聯:有一真,則后面的表達式將不被執行

!:取反
遵循截斷法則


【1】
1.存儲類型:決定變量的存儲位置
1)
auto int aint a 兩邊等價
auto修飾的局部變量,不初始化的時候,初值為隨機值(修飾全局變量不初始化的時候初值為0)
auto只能修飾局部變量

2)
extern外部引用
外部引用變量,編譯時需要多個文件同時編譯
3)
Static :靜態型
只初始化一次
修飾的變量如果沒有初始化,初始值為0
存放在靜態區
限制作用域,修飾局部變量時限制再在局部,修飾全局變量,限制在本文件中
只初始化一次,修飾的變量,下面使用的值,時上面運算后的值

1.未初始化的全局變量和靜態變量放在.BSS段,已初始化但初始化的值為0的全局變量和靜態變量也放在.bss段
2.已初始化為0的全局變量和靜態變量放在.bss段
3.data存儲已初始化的全局變量和靜態變量,但是初值不是0
【3常量】
整型常量
浮點常量
指數常量

字符常量:單引號引起來的一個字符
‘a’ ‘b’
字符串常量:雙引號引起來的一串字符
“hello” 6個
字符串常量始終以‘\0’結尾,‘\0’是系統自動補,不需要程序員寫,程序員要考慮‘\0’必須要有空間去存放
標識常量:符號常量
格式:#define 宏名 標識符
例子:
#define M 3
#define N M+M

Printf(“%d\n”,N*3+1);
展開 M+M*3+1=13

單純的替換(不能加括號)

【4】格式輸入輸出語句:
1.printf:
int printf(const char *format, ...);
功能:按照指定的格式向終端輸出
參數:多參
format:向終端輸出的內容
%d -- int 整型
%ld -- long 長整型
%c -- char 字符型
%e -- 指數形式
%f -- float
%lf -- double
%s -- 字符串
%p -- 地址
%0m.nf
0:在左側補0
m:指定的位寬,
m大於實際位寬時,按m輸出
m小於實際位寬時,按原樣輸出
+:輸出符號
-:左對齊,默認右對齊
返回值:輸出字符的個數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM