1. 程式人生 > >C++學習筆記——第二天變數和資料型別

C++學習筆記——第二天變數和資料型別

目標:
1.掌握C++中的常量,變數及其定義
2.掌握C++中資料型別及其轉換
3.熟練掌握在C++程式中如何宣告及使用常量,變數和資料型別

本節之後選擇用visual studio進行程式設計
教程參考:https://blog.csdn.net/luoweifu/article/details/48692267

常量

資料可分為常量和變數。在程式設計時,常量和變數必須遵循“先宣告,後使用”的原則。

宣告常量
常量可分為符號常量和直接常量。
直接常量:通常說的常數。如:123,3.14
符號常量:const float pi=3.1415926

根據常量的定義方法,可分為:const常量和巨集常量
const常量:
const <型別名><常量名>=<表示式>
必須以const開頭,型別名可省略,常量名為識別符號,表示式應與常量型別一致
例如:

Const float pi = 3.1415926

巨集常量#define定義:
#define <巨集名><常量>
巨集名可以是簡單的字元名,也可以是帶引數的函式名。
常量可以是數值,字串和函式等。
例如:

#define pi 3.1415926

常量的應用

#include "stdafx.h"

#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    const double pi=3.1415926;  //定義圓周率pi
const double radius=8.5; //定義半徑常量radius cout<<"area of circle of radius"<<radius<<"is"<<pi*radius*radius<<"\n";//輸出結果 getchar(); return 0; }

這裡寫圖片描述

變數

宣告變數
變數語句:
[<儲存類>] <型別名或型別定義><變數名錶>

儲存類4種:
auto:一次性儲存,其儲存空間可以被若干變數多次覆蓋使用(預設為auto)
register:存放在通用暫存器中
extern:在所有函式和程式段中都可引用
static:在記憶體中是以固定位置存放的,在整個程式執行期間都有效

型別名和型別定義是指變數所屬的資料型別。不可預設

變數名錶是指宣告變數的變數名稱。格式
1.<變數名>
2.<變數名>=<表示式>
3.<變數名1>=[<表示式1>],<變數名2>=[<表示式2>]表示式是指變數的初始化值。

int a ;
char b=’A’
floatc =2.5,d,e=56.1;

變數的命名規則
遵循識別符號命名規則。(C++語言是大小寫敏感的語言)
這裡寫圖片描述

例如:

Char *szName;   //以0為結束符的符串,儲存的是名字變數
BOOL bCanExit;  //布林型別變數、
DWORD dwMaxCount;//32位雙字變數

變數的作用範圍
全域性變數和區域性變數。

// 2-2.cpp : 定義控制檯應用程式的入口點。
//

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int a=0;
        int b=0;//定義全域性變數a,b
    a++;
    b++;
    cout<<"a="<<a<<","<<"b="<<b<<endl;
    {
        float a=0.5;//定義區域性變數a
        a++;
        b++;
    cout<<"a="<<a<<","<<"b="<<b<<endl;
    }
    a++;
    b++;
    cout<<"a="<<a<<","<<"b="<<b<<endl;
    getchar();
    return 0;
}

這裡寫圖片描述

變數的應用

// 2-3.cpp : 定義控制檯應用程式的入口點。
//

#include "stdafx.h"
#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    const double pi=3.1415926;
    double radius;
    double area;
    cout<<"please input radius"<<endl;
    cin>>radius;    //輸入半徑
    area=pi*radius*radius;
    cout<<"area of circle of radius"<<radius<<"is"<<area<<"\n";
    getchar();
    getchar();
    return 0;

}

這裡寫圖片描述
這裡寫圖片描述

基本資料型別

C++資料型別包括基本資料型別和構造資料型別;基本型別分為四種:
整型:說明符為int;
字元型:說明符為char;
浮點型:說明符為float和double;
布林型:說明符為bool;
加上修飾符改變原來的含義:
signed:表示有符號
unsigned:表示無符號
long:表示長型
short:表示短型
這裡寫圖片描述

整型

#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    int i;
    i=123;
    cout<<i<<endl;
    getchar();
    return 0;

這裡寫圖片描述

字元型

#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    char ch1;
    ch1='a';
    cout<<"ch1="<<ch1<<endl;
    int ch2;
    ch2='a';
    cout<<"ch2="<<ch2<<endl;
    getchar();
    return 0;

}

這裡寫圖片描述

浮點型

#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    double a;
    a=a=3.13564824;;
    cout<<a<<endl;
    getchar();
    return 0;

結果進行了取捨
這裡寫圖片描述

布林型

#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    double flag;
    flag=true;
    cout<<flag<<endl;
    getchar();
    return 0;

}

注意輸出的是1,而不是true

這裡寫圖片描述

型別轉換

型別轉換是用來把有一個型別轉換成另一個型別。C++中支援隱式轉換和顯示轉換。

隱式轉換
隱式轉換是系統預設的,不需要加以宣告就可以進行的轉換。


#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    char ch;
    ch='a';
    int i = ch;//宣告整型變數並賦初值,隱式轉換
    cout<<ch<<endl;
    cout<<i<<endl;
    getchar();
    return 0;

}

這裡寫圖片描述

顯式轉換
顯示轉換是使用者手動指出需要轉換的型別。

#include<iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    char ch;
    ch='a';
    int i;
    i=(int)ch;//顯式轉換
    cout<<ch<<endl;
    cout<<i<<endl;
    getchar();
    return 0;

}

這裡寫圖片描述

程式設計中遇到的問題

1.error C2065: “cout”: 未宣告的識別符號 處理方法
解決:新增一行程式碼:

using namespace std;

2.解除vs中執行結果框閃退的方法
解決:在return 0;前加入一句getchar();

3.出現問題:LINK : fatal error LNK1123: 轉換到 COFF 期間失敗: 檔案無效或損壞
解決:
專案->專案屬性->嵌入清單改為“否”

參考:《21天學通C++》作者:劉蕾