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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

【C++教程】03.第一个程序解析

發布時間:2024/9/30 c/c++ 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【C++教程】03.第一个程序解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

第三章?第一個程序解析

前言

第一個程序也即是如何顯示字符串“HelloWorld!”,這是大多數程序員都走過的路。別提第一次成功編譯時,我有多高興,所以如果你還沒編譯成功,不要氣餒,再研究一下第二章。下面列出第一個程序的代碼:

#include <iostream> using namespace std;int main() {cout << "Hello World!";//等待用戶輸入,防止程序一閃而過int a;cin >> a;return 0; }

1.預處理器

看到井號開頭的代碼,這就是預處理器識別的代碼了,預處理器并非C++的語法,而是編譯器提供的功能。比如#include,其作用是包含一個代碼文件。例如:

#include "head.h"

這一句將項目中的head.h頭文件內存復制替換到此處。比如在head.h文件里我們可以寫:

//in head.h int a = 3; int b = 5;

在main.cpp文件里這樣包含它:

//in main.cpp #include "head.h"//這里會被替換為head.h的內容int main() {//即使這里沒看到a和b的定義,但是也沒有報錯cout << a + b;return 0; }

#include "head.h"會被替換為head.h文件的內容,所以最后輸出的結果為8。

再看HelloWorld的代碼,第一行為#include <iostream>,其實就是替換了iostream文件的內容。

2.標準庫

我們可以右鍵查看iostream文件的內容。

可以看到此文件是只讀的,這是C++標準庫的頭文件,標準庫就是除語法外,標準定義的其他工具。每個編譯器可以有不用的實現,可以看到此文件在VS的某一個目錄里,我們包含的文件就是這個文件。雖然實現可能不同,但是使用方式和規則是固定的,我們在使用時可以忽略底層的實現。

標準庫的內容比較多,后面再詳細解釋。它本質就是其他專業程序員為C++寫的功能代碼,包含了常用的功能,但是這個標準庫被稱為標準是因為它是官方的,可以視作C++標準的一部分。比如我們要實現標往控制臺輸出文本,就需要使用到iostream這個標準庫模塊。

io為input和output的縮寫,stream為流的意思。所以iostream是輸入輸出流的意思,我們向控制臺打印字符就需要它,從控制臺接收輸入也需要它。

3.命名空間

現在來看第二句:

using namespace std;

可以發現末尾多了一個分號,宏定義一般結尾不接分號,而一般的C++語句則需要以分號結尾。

using namespace翻譯成中文就是使用命名空間的意思,所謂命名空間就如同一個名字,例如地球、四川、桌子上。地球的衛星、四川的河流、桌子上的筆,正是因為火星也有衛星,北京也有河流,所以可以將地球視作一個命名前綴防止代指衛星的定義出現沖突。

而std則是標準庫(standard library)的名字前綴,比如字符串可以用string表示。假設某個庫再實現一個字符串string,那他們的名字就會出現沖突。在這里使用using namespace std,則明確使用標準庫的名字。例如下一句的cout標準輸出,輸出字符到控制臺,則是標準庫的函數。

要么這樣全局名字引用

using namespace std; cout << "123";

要么兩個冒號指定名字空間使用?

std::cout << "123";//這樣就可以不要using namespace std

?4.函數

所謂函數就是程序員定義的一個功能模塊,方便反復使用和抽象化。例如實現交換兩個數字:

void swap(int& a, int& b) {int temp = a;a = b;b = temp; }

?其中swap是我們取的名字,以后再想交換兩個數字,如下調用即可,方便和簡化了使用,調用者也不需要知道函數內部是如何實現的:

int x = 1; int y = 2; swap(x, y);//調用之后x為2,y為1

?標準庫提供了許多常用函數,例如:

sqrt開方
pow求指數
round四舍五入
time返回時間
rand隨機數

?所以除了自己調用自己寫的函數,還可以直接使用現成的工具函數。

定義函數的基本方式如下:

返回值類型 函數名(參數<可選>) {執行語句返回值<可選> }

?而主函數main是一個特殊函數,作為整個程序的入口,主函數執行完畢,則整個程序也執行完畢。標準的主函數需要返回int型值,所以主函數如下定義,在其內部則是我們期望執行的代碼:

int main() {//程序從這里開始執行//這里寫需要執行的代碼return 0;//返回0代表正常結束 }

?5.字符串

在代碼中如何表示一段文本呢?用雙引號括起來。

例如:"HelloWorld"、"我愛中國"、"QWQ"

引號用于括起來字符串,那如何表示引號呢?用\"來表示。這個叫轉義字符,后面詳細再解釋。

6.輸出與輸入

在此章示例代碼中,用到了標準庫的輸出與輸入,分別是coutcin,讀作c-in、c-out。

cout輸出一個字符串,cin等待用戶輸入一個值。

cout << "Hello World!";//輸出Hello World! cout << "123";//123//定義一個變量a int a; //會將用戶輸入的值賦值給a cin >> a; //輸入完成后,程序才會結束,防止程序一閃而過 return 0;

你可以嘗試額外輸出幾句自己寫的字符串,還可以嘗試輸出一下引號。

7.新手錯誤

新手遇見錯誤,首先可以網上搜索,應該很容易解決。或者問一下有經驗的人,下面我列出一些最常見的錯誤:

字符分為半角與全角,除了字符串里的字符可以用全角外,一般其他地方都應該用半角。半角是英文符號,而全角是中文書面的符號,觀察一下就知道了,一般的輸入法按shift可以切換全半角,或者切換到英文狀態再輸入:

全角半角
,
.
“”""
【】[]

?還有一個常見的錯誤是忘記結尾的分號。

還有一個錯誤是拼寫錯誤,這個如果明白單詞的含義后就不太會記錯了,而且上一章所說的VAssistX插件可以幫助補全代碼(vs也自帶這個功能),一般不會寫錯。即使寫錯了,編譯器也會有報錯,很容易定位修復。

還有一個錯誤是程序一閃而過,誤以為程序沒有運行。不過使用cin等待用戶輸入就解決了這個問題。

還有一個比較坑的錯誤是,當代碼正確生成后,再修改出現錯誤后,會提示彈窗:

這個時候應該點否,來看編譯器報錯究竟是什么。否則你改了程序還是運行的以前的版本,并且不會提示報錯。如果不慎點了是,并且勾選了不再顯示此對話框,可以再【工具】->【選項】->【項目和解決方案】->【生成并運行】->【出現生成錯誤時】改為始終生成,而不是啟動早期版本(在大學的時候不止5個人問過我這個問題,并且我的同學認真學習編程的本來就沒有幾個)。

結語

HelloWorld程序幾乎是每個程序員第一次所寫的代碼,這個不僅是為了簡單的入門理解,更為的是測試編譯器是否有正常工作。在正確打印HelloWorld后,可以再嘗試一下輸出其他文本。

?

總結

以上是生活随笔為你收集整理的【C++教程】03.第一个程序解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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