日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

要点(1)

發布時間:2024/3/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 要点(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要點:

1.為什么(i++)不能做左值而(++i)可以?

//前綴形式,如++a

int &int::operator++() { *this+=1; return *this; } //后綴形式,如a++,由于返回的是副本,所以設定了const int,因為給oldvalue賦值是危險的,函數出棧動作結束后,oldvalue就消失了。 const int int::operator++(int) { int oldvalue=*this; ++(*this); return oldvalue; }

2.(++a)+= (a++) 與 (++a) = (++a)+(a++)區別

//////////////////////////////////////////// #include <iostream> using namespace std; void main() { int a=4; cout<<((++a)+=(a++))<<endl; //結果為10 cout<<a<<endl; //結果為11 system("pause"); } //////////////////////////////////////////// #include <iostream> using namespace std; void main() { int a=4; cout<<((++a)=(++a)+(a++))<<endl; //結果為12 cout<<a<<endl; //結果為13 system("pause"); } ////////////////////////////////////////////

(++a)+=(a++)和(++a)=(++a)+(a++)的結果為什么不同呢?
首先,10和11,12和13的不同時由于a++造成的。
(++a)+=(a++)
其實是先++a,那么a變成5,(a++)之后返回副本值還是5,那么5+5為10。

3.char數組初始化字符串時以\0結尾,如下:
str共有16個字符加上\0 輸出為17

char str[] = "www.ibegroup.com"; cout<<sizeof(str)<<endl; //17

4..在C++ 程序中調用被 C 編譯器編譯后的函數,為什么要加 extern “C”聲明?
答:函數和變量被C++編譯后在符號庫中的名字與C語言的不同,被 extern “C”修飾的變量和函數是按照C語言方式編譯和連接的。由于編譯后的名字不同,C++程序不能直接調用C 函數。C++提供了一個C 連接交換指定符號extern“C”來解決這個問題。
5. switch()中不允許的數據類型是?
答:實型.
實型:在程序運行過程中可以改變其值的實型量被稱為實型變量,實型變量分為單精度(float),雙精度(double)和長雙精度(long double)型。

6.MFC中CString是類型安全類么?
答:不是,其它數據類型轉換到CString可以使用CString的成員函數Format來轉換
類型安全代碼指訪問被授權可以訪問的內存位置。
例如,類型安全代碼不能從其他對象的私有字段讀取值。它只從定義完善的允許方式訪問類型才能讀取。

7.C++中為什么用模板類。
答:(1)可用來創建動態增長和減小的數據結構
(2)它是類型無關的,因此具有很高的可復用性。
(3)它在編譯時而不是運行時檢查數據類型,保證了類型安全
(4)它是平臺無關的,可移植性
(5)可用于基本數據類型

8.NEWTEXTMETRIC 是什么。
答:物理字體結構,用來設置字體的高寬大小

9.程序什么時候應該使用線程,什么時候單線程效率高。
答:1.耗時的操作使用線程,提高應用程序響應
2.并行操作時使用線程,如C/S架構的服務器端并發線程響應用戶的請求。
3.多CPU系統中,使用線程提高CPU利用率
4.改善程序結構。一個既長又復雜的進程可以考慮分為多個線程,成為幾個獨立或半獨立的運行部分,這樣的程序會利于理解和修改。
其他情況都使用單線程。

10.Windows是內核級線程么 Linux有內核級線程么。
答:線程通常被定義為一個進程中代碼的不同執行路線。從實現方式上劃分,線程有兩種類型:“用戶級線程”和“內核級線程”。
用戶線程指不需要內核支持而在用戶程序中實現的線程,其不依賴于操作系統核心,應用進程利用線程庫提供創建、同步、
調度和管理線程的函數來控制用戶線程。這種線程甚至在象 DOS 這樣的操作系統中也可實現,但線程的調度需要用戶程序完成,
這有些類似 Windows 3.x 的協作式多任務。另外一種則需要內核的參與,由內核完成線程的調度。其依賴于操作系統核心,
由內核的內部需求進行創建和撤銷,這兩種模型各有其好處和缺點。用戶線程不需要額外的內核開支,并且用戶態線程的實現
方式可以被定制或修改以適應特殊應用的要求,但是當一個線程因 I/O 而處于等待狀態時,整個進程就會被調度程序切換為
等待狀態,其他線程得不到運行的機會;而內核線程則沒有各個限制,有利于發揮多處理器的并發優勢,但卻占用了更多的系
統開支。
Windows NT和OS/2支持內核線程。Linux 支持內核級的多線程

11.TCP/IP 建立連接的過程?(3-way shake)
答:在TCP/IP協議中,TCP協議提供可靠的連接服務,采用三次握手建立一個連接。
第一次握手:建立連接時,客戶端發送syn包(syn=j)到服務器,并進入SYN_SEND狀態,等待服務器確認;
第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時自己也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;
第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

12.IP組播有那些好處?
答: Internet上產生的許多新的應用,特別是高帶寬的多媒體應用,帶來了帶寬的急劇消耗和網絡擁擠問題。
組播是一種允許一個或多個發送者(組播源)發送單一的數據包到多個接收者(一次的,同時的)的網絡技術。
組播可以大大的節省網絡帶寬,因為無論有多少個目標地址,在整個網絡的任何一條鏈路上只傳送單一的數據包。
所以說組播技術的核心就是針對如何節約網絡資源的前提下保證服務質量。

13觸發器怎么工作的?
答:觸發器主要是通過事件進行觸發而被執行的,當對某一表進行諸如UPDATE、 INSERT、 DELETE 這些操作時,
數據庫就會自動執行觸發器所定義的SQL 語句,從而確保對數據的處理必須符合由這些SQL 語句所定義的規則。

總結

以上是生活随笔為你收集整理的要点(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。