????? 有人說,C++是由C語言往前走了一步而變成的,因為從語法角度上來看,C++就是在C的基礎上自增了一。那么,C++和C語言相比,除了類(就是面向對象的那一套東西之外),基礎語法增加的有哪些呢。
???? 1、強制類型轉換,C++中有四種強制類型轉換,static_cast,const_cast,dynamic_cast,reinterpret_cast。
????????? (1)static_cast是最常用的強制類型轉換,他的作用是將一種基本類型的數據轉換為另一種基本類型,比如從int型到float型。
int part = 90;
int full = 100;
float rate = static_cast<float>(part)/static_cast<float>(full);
????????? (2)const_cast根據名字我們知道,它用來強制去掉常數性。更確切而說是將指向常數對象的指針轉變為一個指向非常數對象的指針。
#include <iostream>
using namespace std;const int* find(int val,const int* t,int n);int main()
{int a[] = {2,4,6};int* ptr;ptr = const_cast<int*>(find(4,a,3));if(ptr==0){cout<<"not found!"<<endl;}else{cout<<"find: "<<*ptr<<endl;}
}const int* find(int val,const int* t,int n)
{for(int i=0;i<n;i++){if(t[i]==val){return &t[i];}}return 0;
}
計算機基礎知識點。
在上面的例子中,我們在一個數組中查找指定的元素是否存在。如果指定的元素存在的話,就以const int*為類型返回所查找的元素的地址。而我們在主函數中接收find這個函數的返回值的是一個int*類型的指針。如果直接使用
ptr = find(4,a,3);的話,編譯器就會報錯。在這里就需要強制類型轉換ptr = const_cast<int *>find(4,a,3);,從安全的角度來講,因為數組a的類型為int []類型,并沒有用const來限定常數性,因此這個轉換是安全的。
float f = -0.3333;
unsigned char* p = reinterpret_cast<unsigned char*>(&f);
將float類型的指針轉變為unsigned char*類型的指針。
????????? (4)dynamic_cast以后再介紹。
???? 2、bool類型,我們都知道,在c語言中是沒有bool類型的數據的。在c語言中,用0表示假,非0表示真。c++中新添了bool類型,true和false。當然c語言判斷真假的那一套規則,在c++中也是可以使用的。
???? 3、枚舉類型,只需要記住一點,枚舉類型的主要作用是用來聲明常量的。
模塊基礎知識過關五,???? 4、結構類型,c++中的結構類型和c語言中的結構類型有著很大的差別,盡管他們都是用關鍵字struct聲明。
????????? (1)在c語言中,結構體中只有數據成員,而沒有函數成員。在c++的結構體中可以有函數成員。
????????? (2)在c++中用結構體聲明變量前,前面不用再冠以struct關鍵字。
??????????(3)在c++中,關鍵字struct和類聲明的關鍵字class可以等同。
???? 5、c++中有string類型,而c中用字符數組來表示字符串。string類型比較常用的方法有c_str(),length(),erase(),insert(),replace(),substr(),find()。這些方法基本上都可以根據名字而猜出他們的作用。
計算機基礎知識測試卷五、???? 就先介紹這么多吧。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态