學習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不能輸出打印字符串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章