1.條件編譯
#ifdef
#ifndef
#else
#endif
2.格式
一。
#ifdef 宏名稱
//任意語句
#endif ? ? ? ? 如果定義了指定的宏,則執(zhí)行語句
二。
#ifdef 宏名稱
//任意語句
#else
//任意語句
#endif
三。
使用#ifndef
#ifndef
//任意語句
#endif ? ? ?如果未定義指定宏 則執(zhí)行
四、
#ifndef
//任意語句
#else
#endif
指針變量:
&取地址運(yùn)算符 ?這是一個單目運(yùn)算符 后面通常緊跟一個變量,該運(yùn)算符用于讀取該變量的保存地址
*去變量運(yùn)算符 單目運(yùn)算符 緊跟一個指針變量 讀取改制真變量所指的變量
兩運(yùn)算符優(yōu)先級相同 從右向左運(yùn)算
指向同一數(shù)組的指針相減得到之間的元素個數(shù),可以比較,前面的小于后邊的
在數(shù)組中,a[i]==p+i(p為指針)
注意:p++ p+=1 這種形式因都是在嘗試對數(shù)組變量賦值故都是錯誤的
arr[];
for(int *p=arr,len=sizeof(arr)/sizeof(arr[0]);p
}
指針數(shù)組:
類型* ?數(shù)組變量[長度] ? []優(yōu)先級高于* ?指針數(shù)組
類型(*數(shù)組變量)[長度] ?第一一個指向一維數(shù)組的指針變量
例子:
char *strs[]={"OC","iOS","java","Ajax","Android"};
for(int i=0;i<5;i++){
printf("%s\n",strs[i]);
入口函數(shù)main(int argc,char *args[])
兩個形參都用于接受用戶運(yùn)行改程序時輸入的參數(shù)
argc 用戶輸入的參數(shù)個數(shù)
args[] 接收用戶輸入的多個參數(shù)字符串
printf("%d\n",argc);
for(int i=0;i
printf("%s\n",argv[i]);
}
使用終端并加入字符串
tongkang:543 KangTong$ ./a.out OC iOS // 空格被用作參數(shù)分隔符
3
./a.out
OC
iOS
--------------------------
typedef ?給已經(jīng)有的關(guān)鍵字起別名 一般用于struct ?block 或 enum
結(jié)構(gòu)體變量初始化
struct person{
int age;
char *name;
}p1={20,"liping"};