雖然說都知道,但是有些東西還是不清晰。在這裡寫一寫,日後慢慢更新。
變數的第乙個字元:字母或下劃線,其他字元:字母,下劃線,數字。
int整型範圍:32位(32位整數,10^9以內),-2^31~~+2^31-1。絕對值在10^9以內的都可以定義成int。
long long範圍:(64位整數,10^18以內)2的63次方。超過2147483647的就要用long long。後面要加ll識別符號。
浮點型:遇見浮點型直接用double就可以,float精度低不必考慮。%lf輸入,%f輸出。
字元型:記住幾個ascii碼:'0'->48; 'a'->65; 'a'->97;
小寫字母比大寫字母大32;
開 char s 字元陣列的時候一定要多申請乙個來存放 '\0' 結束標誌。
比如存10個char的動態陣列:char* s = (char*) malloc(sizeof(char)*11)
應該是這樣吧
關於scanf():
long long n; scanf("%lld",&n);
double n; scanf("%lf",&n); //double的輸入佔位符是%lf
scanf("%c",&c); //是可以讀入空格字元的,因為是%c
printf():
double n; print("%f",n); double的輸出佔位符是%f
%2d、%02d、%.2f:超出的會直接輸出而並不是格式化的2位
round(double x)
四捨五入,返回double型變數,需要強轉取整一下。
memset(陣列名,值,sizeof(陣列名))
為陣列中的元素按位元組賦值。需要包括string.h。只建議初學者賦值0或-1,因為涉及到補碼問題。
只有scanf和gets會在字元陣列最後加 '\0' 結束標誌,其他的(比如getchar)不會新增需要手動加。
string.h中常用函式
#includeint strlen(字元陣列); \\得到字元陣列中'\0'前的字元的個數
例如:"memeda\0muadarling"得到的長度是6
int strcmp(字元陣列1,字元陣列2); \\字串比較大小,比較字典序,as2,返回正整數
strcpy(字元陣列1,字元陣列2); \\字串複製,2複製給1
strcat(字元陣列1,字元陣列2); \\字串連線,2連到1後面
sscanf()與sprintf()
int n = 223;
char str[100] = 123;
sscanf(str,"%d",&n);
從左到右,將str以%d形式輸入到n裡,n=123
sprintf(str,"%d",n);
從右到左,將n以%d形式輸入到str裡,str=223
qsort()排序函式
引用自大佬部落格:
快速排序是一種用的最多的排序演算法,在c語言的標準庫中也有快速排序的函式,下面說一下詳細用法。
qsort函式包含在中
qsort函式宣告如下:
void qsort(void * base,size_t nmemb,size_t size ,int(*compar)(const void *,const void *));
引數說明:
base,要排序的陣列
nmemb,陣列中元素的數目
size,每個陣列元素占用的記憶體空間,可使用sizeof函式獲得
compar,指向函式的指標也即函式指標。這個函式用來比較兩個陣列元素,第乙個引數大於,等於,小於第二個引數時,分別顯示正值,零,負值。
下面看幾個例子:
#include#include#include#includevoid main(void)
; char b[10]=;
double c[10]=;
int cmp1(const void * a,const void * b)
int cmp2(const void * a,const void *b)
int c***(const void * a,const void * b)
qsort(a,10,sizeof(int),&cmp1);//對於函式指標(指向函式的指標),直接傳入函式名和函式名進行&
//運算都是可以的,因為在呼叫函式時也是取的函式的位址
qsort(b,10,sizeof(char),cmp2);
qsort(c,10,sizeof(double),c***);
for(i=0;i<10;i++)
printf("%d ",a[i]);
for(i=0;i<10;i++)
printf("%c ",b[i]);
for(i=0;i<10;i++)
printf("%lf ",c[i]);
}
為啥用chrome窄視窗寫完csdn還錯版了呢。。。這麼不行的麼
C語言基礎知識
1 的問題。int i 1 int j 2 int k i j printf d k 輸出k為3。編譯原理有關編譯器在詞法解析的時候,對於運算子,總是查詢最大的匹配也就是說,i j,編譯器在找到 的時候,它不立即理解為 而是繼續下乙個字元,下乙個字元仍然是 可以組成 再往下的話便是 不成立了。所以i...
C語言基礎知識
一 位元組對齊 位元組對齊的原因,是機器在訪問記憶體中儲存的資料的高效性。通常機器是機器位數為自然邊界來訪問記憶體的,如果乙個4位元組整形數,所在的記憶體不在虛擬記憶體的自然邊界。則cpu需要讀多於一次的資料,這樣就降低了效率。所以,簡單地說,就是保證cpu指令在訪問資料的時候,能一次讀取,而不需要...
程式語言基礎知識
1.字符集 掌握跟本門課程相關的字符集組成,例如字母 嚴格區分大小寫 數字,運算子,特別注意運算子 的左右兩邊必須為整數,且結果 的符號由 前面數字符號決定,比如 8 5 3 2.識別符號 由系統預定義識別符號 關鍵字 和使用者自定義識別符號兩種組成 需要注意的是 使用者自定義識別符號的命名規則分為...