1. c語言中>>和<<如何使用
C語言中<< 代表左移運算符,>> 代表右移運算符,位移位運算符是將數據看成二進制數,對其進行向左或向右移動若干位的運算。
<< 代表左移運算符:左移運算符用來將一個數的各二進制位全部左移若干位,移動的位數由右操作數指定,右操作數必須是非負值,其右邊空出的位用0填補,高位左移溢出則舍棄該高位。
例如:設無符號短整型變數a為0111(對應二進制數為0000000100010001),則:a<<3 結果為0888(對應二進制數為0000100010001000)。
>> 代表右移運算符:右移運算是將一個二進制位的操作數按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位或者一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。
例如:var temp = 56 >> 2 變數temp的值為 14,因為56 (即二進制的 00111000)向右移兩位等於14 (即二進制的 00001110) 。
(1)c加語言擴展閱讀:
相關運算規則:
1、在移位運算時,byte、short和char類型移位後的結果會變成int類型,對於byte、short、char和int進行移位時,規定實際移動的次數是移動次數和32的余數,也就是移位33次和移位1次得到的結果相同。
2、移動long型的數值時,規定實際移動的次數是移動次數和64的余數,也就是移動66次和移動2次得到的結果相同。
3、位移位運算符的優先順序:算術運算符優先於位移位運算符優先於關系運算符,位移位運算符是同級別的,結合性是自左向右。
2. 給c語言加註釋
)
在編寫C語言源代碼時,應該多使用注釋,這樣有助於對代碼的理解。在C語言中有兩種注釋方式:
一種是以/*開始、以*/結束的塊注釋(block comment);
另一種是以//開始、以換行符結束的單行注釋(line comment)。
可以使用/*和*/分隔符來標注一行內的注釋,也可以標注多行的注釋。例如,在下列的函數原型中,省略號的意思是 open() 函數有第三個參數,它是可選參數。注釋解釋了這個可選參數的用法:
int open( const char *name, int mode, … /* int permissions */ );
可以使用//插入整行的注釋,或者將源代碼寫成兩列分欄的格式,程序在左列,注釋在右列:
const double pi = 3.1415926536; // pi是—個常量
在 C99 標准中,單行注釋正式加入C語言,但是大部分編譯器在 C99 之前就已經開始支持這種用法。有時候,其被稱作「C++風格」的注釋,但實際上,其源自於C的前身 BCPL。
在引號中,如果採用/*或//分隔一個字元常量或字元串字面量(string literal),它們都不會被視為注釋的開始。例如,下面語句就沒有注釋:
printf("Comments in C begin with /* or //.\n" );
預處理器僅通過檢查注釋的結束符來檢測注釋中的字元,因此,不能嵌套塊注釋。然而,可以使用/*和*/注釋包含單行注釋的源代碼:
/* 暫時注釋掉這兩行:
const double pi = 3.1415926536; // pi是一個常量
area = pi * r * r; // 計算面積
暫時注釋到此 */
如果想要注釋掉包含塊注釋的部分程序,可以使用條件預處理命令:
#if 0
const double pi = 3.1415926536; /* pi是一個常量 */
area = pi * r * r ; /* 計算面積 */
#endif
預處理器會把每個注釋都替換成一個空格。因此,min/*max*/Value變成兩個標記min Value。
所有教程
3. C語言自加語句處理
int i=1,a;
從匯編分析
a=(++i)+(++i);相當於:i++; i++; a=i+i;
a=(++i)+(++i)+(++i);相當於:i++; i++; a=i+i; i++; a+=i;
也就是先算前面兩個式子的和,然後再執行與最後一個式子相加的操作
4. c~加加語言是干什麼的和c語言有什麼區別
C++是C的超集, C++幾乎支持所有的C的語法.
C++和C從字面上都可以看出, C++比C的功能更強大, 而且還和C有共同的語法部分.
C++是面向對象思想的語言(較新)
C是面向過程思想的語言(較老)
學C++, 學不學C都是可以的.
因為C中一些重要的部分, 在C++中就不是那麼得重要了.
C中的結構體, 基本已被C++中的類代替. 不過在SDK下編程, 結構體也有它的用處.
以我學習的經驗來看, 如果樓主想知道更多, 可以先學C, 再學C++.
如果只是趕質量, 可以直接學C++.
5. 什麼是「C加加」啊
C加加就是c++。
C++,C語言這個詞在中國大陸的程序員圈子中通常被讀做「C加加」,而西方的程序員通常讀做「C plus plus」,它是一種使用非常廣泛的計算機編程語言。
C++是一種靜態數據類型檢查的,支持多重編程範式的通用程序設計語言。它支持過程化程序設計、數據抽象、面向對象程序設計、製作圖標等等泛型程序設計等多種程序設計風格。
C++是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。C++擅長面向對象程序設計的同時,還可以進行基於過程的程序設計,因而C++就適應的問題規模而論,大小由之。
C++不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。
(5)c加語言擴展閱讀:
C++的語言特點:
1、支持數據封裝和數據隱藏
在C++中,類是支持數據封裝的工具,對象則是數據封裝的實現。C++通過建立用戶定義類支持數據封裝和數據隱藏。
在面向對象的程序設計中,將數據和對該數據進行合法操作的函數封裝在一起作為一個類的定義。對象被說明為具有一個給定類的變數。每個給定類的對象包含這個類所規定的若干私有成員、公有成員及保護成員。
完好定義的類一旦建立,就可看成完全封裝的實體,可以作為一個整體單元使用。類的實際內部工作隱藏起來,使用完好定義的類的用戶不需要知道類是如何工作的,只要知道如何使用它即可。
2、支持繼承和重用
在C++現有類的基礎上可以聲明新類型,這就是繼承和重用的思想。通過繼承和重用可以更有效地組織程序結構,明確類間關系,並且充分利用已有的類來完成更復雜、深入的開發。新定義的類為子類,成為派生類。它可以從父類那裡繼承所有非私有的屬性和方法,作為自己的成員。
3、支持多態性
採用多態性為每個類指定表現行為。多態性形成由父類和它們的子類組成的一個樹型結構。在這個樹中的每個子類可以接收一個或多個具有相同名字的消息。當一個消息被這個樹中一個類的一個對象接收時,這個對象動態地決定給予子類對象的消息的某種用法。多態性的這一特性允許使用高級抽象。
繼承性和多態性的組合,可以輕易地生成一系列雖然類似但獨一無二的對象。由於繼承性,這些對象共享許多相似的特徵。由於多態性,一個對象可有獨特的表現方式,而另一個對象有另一種表現方式。
6. C加加與C語言有什麼區別嗎我是計算機學院的,大一,只發了C加加書,但看不懂,
C語言是結構化和模塊化的面向過程的語言,C++語言是面向對象的程序設計語言。C++語言是C語言的超集,也就是說學會了C++,你其實已經把C語言學會了。至於說有什麼區別,應該說是編程思想的區別吧,C是基於過程的,強調的是程序的功能,以函數(功能)為中心。C++是面向對象的,強調程序的分層、分類,以抽象為基礎,進行對象的定義與展示,即程序設計。具體說來話長。建議你學習C++的時候,學會用面向對象的方式思考和編程。現在在開發大項目的時候,都是應用面向對象的分析和設計的技術。
C語言與C++的區別有很多:
1,全新的程序程序思維,C語言是面向過程的,而C++是面向對象的。
2,C語言有標準的函數庫,它們鬆散的,只是把功能相同的函數放在一個頭文件中;而C++對於大多數的函數都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統的大多數API有機的組合,是一個集體。但你也可能單獨調用API。
3,特別是C++中的圖形處理,它和語言的圖形有很大的區別。C語言中的圖形處理函數基本上是不能用在中C++中的。C語言標准中不包括圖形處理。
4,C和C++中都有結構的概念,但是在C語言中結構只有成員變數,而沒成員方法,而在C++中結構中,它可以有自己的成員變數和成員函數。但是在C語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在VC++中它沒有加限定符的為私有的。
4,C語言可以寫很多方面的程序,但是C++可以寫得更多更好,C++可以寫基於DOSr程序,寫DLL,寫控制項,寫系統。
5,C語言對程序的文件的組織是鬆散的,幾乎是全要程序處理;而c++對文件的組織是以工程,各文件分類明確。
6,C++中的IDE很智能,和VB一樣,有的功能可能比VB還強。
7,C++對可以自動生成你想要的程序結構使你可以省了很多時間。有很多可用的工具如加入MFC中的類的時候,加入變數的時候等等。
8,C++中的附加工具也有很多,可以進行系統的分析,可以查看API;可以查看控制項。
9,調試功能強大,並且方法多樣
這是我幫你從別人那裡找的,是別人回答的
我也是學計算機的
說實話,我覺得學校所教的c語音也就那樣,皮毛,很多還是要自己去學習,努力吧學弟
我個人建議你還是先學好C語言吧,因為很多語言百變不離其宗,很多都相似的,
7. 關於C語言中 || 和 &&的用法
「||」「&&」表示邏輯運算,「||」表示或者的意思,「&&」表示並且的意思。
&&運算符需要兩個表達式作為操作數,並創建一個表達式,只有當兩個子表達式都為true時,該表達式才為true。
||運算符需要兩個表達式作為操作數,並創建一個表達式,當任何一個子表達式為true時,該表達式為true。只要其中一個子表達式為true,則整體表達式為true,此時另外一個子表達式無論是false還是true都無關緊要。
運算符的優先順序
優先順序與求值順序無關。如a+b && b*c,雖然*優先順序最高,但這個表達式求值順序是從左到右。
優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。相同優先順序中,按結合性進行結合。大多數運算符結合性是從左到右,只有三個優先順序是從右至左結合的,它們是單目運算符、條件運算符、賦值運算符。
基本的優先順序需要記住:
指針最優,單目運算優於雙目運算,如正負號。先算術運算,後移位運算,最後位運算。請特別注意:邏輯運算最後結合。
8. C語言 自加運算符
C語言中區分前自增與後自增,它們都有副作用,尤其是後自增。
前自增可能更好一點,它不產生臨時變數,效率更高一些。
++y相當於:y=y+1;在變數的使用之前先自增。
y++相當於:y; 其它語句... y=y+1;也就是使用它時,它的值不變,在其使用之後的某一時刻但在再次使用它前其值加一。而且不同的編譯器不一定有一致的實現行為。
a=(y++)+(y++)+(y++) 這是一條語句,通常的編譯器實現會將此語句一次性掃描完成。這種情況下,y++會保持其值不變,此語句完成後,將y的值遞增3次。
b=(++y)+(++y)+(++y)這也是一條語句,編譯器掃描完此語句後,先將y遞增3次,再作+運算,將運算結果賦予b,此時b應該為24。 但是不同的系統及編譯器不一定這樣實現,還有可能y依次遞增,其結果是21。
9. 什麼是C語言和C+語言
1、C語言。
C語言誕生得非常早,當時人們普遍還習慣用匯編語言編寫軟體,並且沒有什麼統一,通用的操作系統,基本上軟體都是從0開始寫的。C語言的方針便是比匯編方便易用,一起不要損失匯編的表達能力。所以C語言可以看成是「高級的匯編」語言。
C語言的源代碼基本上可以非常容易地對應到匯編代碼,並且可以不需要什麼運行時環境的支撐。C的特點,簡單容易編譯,靈活貼近底層。所以一向到現在,一些需要直接和硬體打交道的軟體都還是用C語言寫的,比如(但不限於)Linux Kernel和一些嵌入式領域。
2、C++ 語言
C++早期是基於C的,C++早期的編譯方法是將C++的代碼編譯成C代碼然後再調用C的編譯器來生成機器碼。C++的方針是進步編程人員的生產率,哪怕代價是增加編譯器的復雜度。
(9)c加語言擴展閱讀
1、C語言中,如果一個函數沒有指定返回值類型,默認為int類型,並返回一個隨機數,一般為0XCCCCCCCC.
2、在C++中,如果函數沒有返回值則必須指定為void型,否則編譯不能通過。
10. C加加語言是什麼
網路的網路有詳細的介紹的:
http://ke..com/view/824.htm
【概述】
C++,這個詞在中國大陸的程序員圈子中通常被讀做「C加加」,而西方的程序員通常讀做「C plus plus」,它是一種使用非常廣泛的計算機編程語言。C++是一種靜態數據類型檢查的,支持多重編程範式的通用程序設計語言。它支持過程序程序設計、數據抽象、面向對象程序設計、泛型程序設計等多種程序設計風格。
貝爾實驗室的本賈尼·斯特勞斯特盧普(w:en:Bjarne Stroustrup)博士在20世紀80年代發明並實現了C++(最初這種語言被稱作「C with Classes」)。一開始C++是作為C語言的增強版出現的,從給C語言增加類開始,不斷的增加新特性。虛函數(virtual function)、運算符重載(operator overloading)、多重繼承(multiple inheritance)、模板(template)、異常(exception)、RTTI、名字空間(name space)逐漸被加入標准。1998年國際標准組織(ISO)頒布了C++程序設計語言的國際標准ISO/IEC 14882-1998。遺憾的是,由於C++語言過於復雜,以及他經歷了長年的演變,直到現在(2004年)只有少數幾個編譯器完全符合這個標准(這么說也是不完全正確的,事實上,至今為止沒有任何一款編譯器完全支持ISO C++)。
另外,就目前學習C++而言,可以認為他是一門獨立的語言;他並不依賴C語言,我們可以完全不學C語言,而直接學習C++。根據《C++編程思想》(Thinking in C++)一書所評述的,C++與C的效率往往相差在正負5%之間。所以有人認為在大多數場合C++ 完全可以取代C語言(然而我們在單片機等需要謹慎利用空間、直接操作硬體的地方還是要使用C語言)。
【子語言】
根據Effective C++第三版第一條款的描述,現在C++由以下四個「子語言」組成:
1、C子語言。C++支持C語言的幾乎全部功能,在語法上與C語言僅有極微妙的差別(如括弧表達式的左右值性,具體請參考C++標准文獻)。
2、面向對象的C++。C++首先作為一門面向對象的語言而聞名,這個特點在這里不再詳述。
3、泛型編程語言。C++強大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。
4、STL(C++標准模板庫)。隨著STL的不斷發展,它已經逐漸成為C++程序設計中不可或缺的部分,其效率可能比一般的naive代碼低些,但是其安全性與規范性使它大受歡迎。
【語言發展】
C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向對象語言,並且憑借著接近C語言的效率,在工業界使用的開發語言中占據了相當大份額;第二階段從1995年到2000年,這一階段由於標准模板庫(STL)和後來的Boost等程序庫的出現,泛型程序設計在C++中占據了越來越多的比重性。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的沖擊;第三階段從2000年至今,由於以Loki、MPL等程序庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最復雜的一員。
【C++的Hello World程序】
在使用兼容C89標准(也稱為ANSI C)的編譯器時,下面這個程序顯示「Hello, world!」然後結束運行:
(事實上這並不是符合98標准[ISO C++]的C++程序,而且在多數編譯器上這個程序也不能運行,若要在比較舊的編譯器上編譯該程序,應將iostream改為iostream.h)
#include <iostream>
int main()
{
std::cout << "Hello, world!\n";
}
在使用兼容C99標准(ISO/IEC 14882-1998)的編譯器時,下面的程序也是可以的:
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, world!" << endl;
return 0;
}
根據ISO C++的規定,main函數的形式只能是
int main()
{
...
}
以及
int main(int argc,char * argv[])
{
...
}
盡管如此,但在大部份(其實是在Windows平台下的大部分)編譯器上,
void main()
{
...
}
也被支持。
【C++程序員的數量】
分析機構EvansData定期對開發人員展開調查,其調查結果與Stroustrup提出的C++正在擴張的說法相違背。EvansData的數據顯示,以C++為工具的開發人員在整個開發界所佔的比例由1998年春天的76%下降至2004年秋的46%。
Forrester最新的調查顯示,C++、微軟VisualBasic和Java是眾多公司產品體系的首選語言。對100家公司的調查顯示,C/C++、VisualBasic和Java在產品體系中的使用比例分別是59%、61%和66%。
傳統上認為,C++相對於目前一些新潮的語言,如Java、C#,優勢在於程序的運行性能。這種觀念並不完全。如果一個人深信這一點,那麼說明他並沒有充分了解和理解C++和那個某某語言。同時,持有這種觀念的人,通常也是受到了某種誤導(罪魁禍首當然就是那些財大氣粗的公司)。對於這些公司而言,他們隱藏了C++同某某語言間的核心差別,而把現在多數程序員不太關心的差別,也就是性能,加以強化。因為隨著cpu性能的快速提升,性能問題已不為人們所關心。這叫"李代桃僵"。很多涉世不深的程序員,也就相信了他們。於是,大公司們的陰謀也就得逞了。
一般認為,使用Java或C#的開發成本比C++低。但是,如果你能夠充分分析C++和這些語言的差別,會發現這句話的成立是有條件的。這個條件就是:軟體規模和復雜度都比較小。如果不超過3萬行有效代碼(不包括生成器產生的代碼),這句話基本上還能成立。否則,隨著代碼量和復雜度的增加,C++的優勢將會越來越明顯。
造成這種差別的就是C++的軟體工程性。在Java和C#大談軟體工程的時候,C++實際上已經悄悄地將軟體工程性提升到一個前所未有的高度。這一點被多數人忽視,並且被大公司竭力掩蓋。
語言在軟體工程上的好壞,依賴於語言的抽象能力。從面向過程到面向對象,語言的抽象能力有了一個質的飛躍。但在實踐中,人們發現面向對象無法解決所有軟體工程中的問題。於是,精英們逐步引入、並拓展泛型編程,解決更高層次的軟體工程問題。(實際上,面向對象和泛型編程的起源都可以追溯到1967年,但由於泛型編程更抽象,所以應用遠遠落後於面向對象)。