c語言 知識總結

1、unsigned int 類型的數據與int類型的數據運算後自動轉化爲unsigned int 類型。
   比如說-20和6運算後就會變成一個很大的數;
  
  下面解釋一個判斷語句:
   (a+b>6)?{
      c=1
 
   }:(c=0);
   具體的意思就是如果a+b>6則c+1,否則C=0;
  // %f.2:表示的意思是小數點後保留幾位;
  
2、隱式類型轉換:
在混合類型的算式表達式中,最寬的數據類型肩負起了目標轉換類型的責任,
   這被稱爲算術轉換。(Arithmetic Conversion)
        int ab = 4;
  double ab = 4.111;
  此時ab=4.0;
  
表達式不同類型間的賦值】
在這時候目標轉換類型是被賦值的對象,

用一個表達式傳遞給一個函數,表達式類型和形參類型不同: 此時的目標值是形參的值;
function momo(double)   momo(2)  結果值是double type;

函數返回值和i形參不同type
double difference(int );
目標類型爲函數返回值類型;

3、 i?i
itn i = 3,j = 4;
i?i++;++j;
printf("%d %d\n",i,j);  the answer is 4,4;
等價於:(

   if(i=true){
     i++
   }else{
     ++j;
   }
 

4、很糾結的式子,:i++j;
mean is :first:i++;
          next: +j;

   
5、最扯淡的分析,
  x = x+1; x+=1;x++ 這三個式子哪個效率最高:
  從她得執行過程分析:
  第一個:先讀取右X地址
          X+1;
    讀取做X的地址;
    將右值傳給左邊的X;
  第二個:讀取右X的地址;
           x+1
     得到值傳給X(X地址早已經讀出);
  第三個:效率最高
          讀取有X的地址;
    X自增1.
   
6、編程規範方面:
      ‘A’==a比a=='A'合適: because 常量是不能被賦值的少寫一個‘=’時能檢查出錯誤

7、a、b交換:(神奇的算最大值的方法)
  擴展:abs( int x )是求整數的絕對值的 ,
  fabs( double x )是精確到雙精度浮點型的求絕對值的
  簡單的說就是保留的精度位數更高
     求兩個數中最大的那個:
     int max  = ((a+b)+abs(a-b))/2(so牛逼);
  
  int c = a-b;
     char *strs[2] = {"a大","b大"}; 
  c = unsigned(c)>>(sizeof(int)*8-1) ;
     c=a-b,假如a<b的話,c爲負數,轉換爲無符號數的話,最高位將是1
     第二句c=unsigned(c)>>(sizeof(int)*8-1);就是求c的最高位,
     之後只要判斷是否爲1就可以知道a和b哪個大了
  
  ----0、真正的交換來啦:
      不用中間變量交換:a、b;
   a^b 表示 a 和b 進行 異或運算
  
   a=a^b; 
   b=a^b;
   a=a^b;
  
8、c、c++的區別;
 
    (1)、c++支持函數的重載,c不支持,c++中的 void foo(int x,int y).
 被C編譯後就成了 void _foo();
 (2)、頭文件中的ifndef、define、endif是防止頭文件被重複引用的!!
 (3)、<filename.h>是在標準庫路徑開始搜索的
      "filename.h"是從用戶的工作路徑開始搜索的!!
     
9、如何判斷一段程序是C還是C++;
      1、C是void main()而標準C++是int main() ;
   2、文件就不同
      c++有輸入輸出流文件即#include<iostream>
      c用的是scanf 和printf
      而c++用的是cout 和cin
      3、c++有類的定義,c是沒有的
      4、C++在編譯時定義了_cplusplus,C編譯時定義了_STDC.

10、主函數想不到的地方,
        在main函數退出執行之後,可以使用atexit()函數註冊一個函數,
         注意需要<stdlib.h>文件;

 

 

 

發佈了93 篇原創文章 · 獲贊 132 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章