學習OC必備的C基礎1
c語言的編譯
cd desktop
cc(-c||-o) 目標文件.c||o cc 目標文件1.c 目標文件2.c
./a.out
1。全局變量 staic 靜態存儲區
局部變量 auto 棧區
register 硬件寄存器 速度最快 寄存器變量只限於int char 和 指針類型變量的使用
2.全局變量與局部變量取最近變量爲原則
全局變量可多次定義是沒有問題的,代表同一個值
extern修飾的函數是外部函數,是默認的
static 修飾的是內部函數 只限當前函數調用
3.int a 聲明變量爲全局變量
static int a 聲明變量爲局部變量
extern int a 聲明變量已定義
3.結構體可以包含別的結構體變量
結構體不允許對結構體遞歸調用
結構體佔用的空間是其成員所佔空間的總和
4.結構體 struct
枚舉 enum
取別名 typedef 函數重名 數據類型重名
(1).typedef+struct 給結構體定義別名
typedef struct MyPoint{
float x;
float y;
}
MyPoint Point; struct MyPoint(原本定義方式) typedef char* String
(2).typedef struct MyPoint{
float x;
float y;
}Point;
(3).typedef struct{
float x;
float y;
}Point1,Point2;
枚舉類似,enum Weather{
sum,
rainy,
haze
};
enum Wether weather=haze; 或 enum Wether weather=2; 默認值從0開始
5.union 關鍵字的用法與struct 的用法非常類似。
union 維護足夠的空間來置放多個數據成員中的“一種”,而不是爲每一個數據成員配置空間,在union 中所有的數據成員共用一個空間,同一時間只能儲存其中一個數據成員,所有的數據成員具有相同的起始地址.
6.volatile
編輯
就像大家更熟悉的const一樣,volatile是一個類型修飾符(type specifier)。它是被設計用來修飾被不同線程訪問和修改的變量。如果沒有volatile,基本上會導致這樣的結果:要麼無法編寫多線程程序,要麼編譯器失去大量優化的機會。
但多線程訪問時可能值發生變化
7.c語言數據類型
指針類型 void *p
空類型 void
基本數據類型 int float double char
構造類型 struct union enum
8.c語言提供了4種最常用的基本數據類型
char 一個字節
int 四個字節
float 四個字節
double 八個字節
9.常用輸出格式
整型 int %d
長整型 long %ld
字符型 char %c
浮點型 float %f
雙精度型 double %f
指針型 地址 %p
字符串 char a[10];
printf %s a
scanf %s a
修飾 short短型 long 長型 signed 有符號型 unsigned 無符號型
10.Byte,short,char->int->long->float->double 小的變大的
容量大的數據類型轉換成容量小的數據類型,需要強制轉換
列:int i=(int)10.7
11.%:取餘 /:取整(基於整形的話)
12.擴展賦值運算符
a+=4;——>a=a+4 其餘類似
a=++i 先賦值i再++ a=i++ i先++再賦值
12. scanf("%d",&a);
printf("%d",a);
13.函數指針與別名
//int (*p)(int, int)=sum;
//typedef int(*MySum)(int,int);
MySum p=sum;
14.scanf不能輸出打印字符串
cd desktop
cc(-c||-o) 目標文件.c||o cc 目標文件1.c 目標文件2.c
./a.out
1。全局變量 staic 靜態存儲區
局部變量 auto 棧區
register 硬件寄存器 速度最快 寄存器變量只限於int char 和 指針類型變量的使用
2.全局變量與局部變量取最近變量爲原則
全局變量可多次定義是沒有問題的,代表同一個值
extern修飾的函數是外部函數,是默認的
static 修飾的是內部函數 只限當前函數調用
3.int a 聲明變量爲全局變量
static int a 聲明變量爲局部變量
extern int a 聲明變量已定義
3.結構體可以包含別的結構體變量
結構體不允許對結構體遞歸調用
結構體佔用的空間是其成員所佔空間的總和
4.結構體 struct
枚舉 enum
取別名 typedef 函數重名 數據類型重名
(1).typedef+struct 給結構體定義別名
typedef struct MyPoint{
float x;
float y;
}
MyPoint Point; struct MyPoint(原本定義方式) typedef char* String
(2).typedef struct MyPoint{
float x;
float y;
}Point;
(3).typedef struct{
float x;
float y;
}Point1,Point2;
枚舉類似,enum Weather{
sum,
rainy,
haze
};
enum Wether weather=haze; 或 enum Wether weather=2; 默認值從0開始
5.union 關鍵字的用法與struct 的用法非常類似。
union 維護足夠的空間來置放多個數據成員中的“一種”,而不是爲每一個數據成員配置空間,在union 中所有的數據成員共用一個空間,同一時間只能儲存其中一個數據成員,所有的數據成員具有相同的起始地址.
6.volatile
編輯
就像大家更熟悉的const一樣,volatile是一個類型修飾符(type specifier)。它是被設計用來修飾被不同線程訪問和修改的變量。如果沒有volatile,基本上會導致這樣的結果:要麼無法編寫多線程程序,要麼編譯器失去大量優化的機會。
但多線程訪問時可能值發生變化
7.c語言數據類型
指針類型 void *p
空類型 void
基本數據類型 int float double char
構造類型 struct union enum
8.c語言提供了4種最常用的基本數據類型
char 一個字節
int 四個字節
float 四個字節
double 八個字節
9.常用輸出格式
整型 int %d
長整型 long %ld
字符型 char %c
浮點型 float %f
雙精度型 double %f
指針型 地址 %p
字符串 char a[10];
printf %s a
scanf %s a
修飾 short短型 long 長型 signed 有符號型 unsigned 無符號型
10.Byte,short,char->int->long->float->double 小的變大的
容量大的數據類型轉換成容量小的數據類型,需要強制轉換
列:int i=(int)10.7
11.%:取餘 /:取整(基於整形的話)
12.擴展賦值運算符
a+=4;——>a=a+4 其餘類似
a=++i 先賦值i再++ a=i++ i先++再賦值
12. scanf("%d",&a);
printf("%d",a);
13.函數指針與別名
//int (*p)(int, int)=sum;
//typedef int(*MySum)(int,int);
MySum p=sum;
14.scanf不能輸出打印字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.