C++ 函數、數組、指針、輸入輸出、日期時間

一、C++函數:

函數是一組執行一個任務的語句。每個C++程序至少有一個函數,即主函數main()。函數有很多叫法,比如方法、子例程或程序等等。函數聲明告訴編譯器函數的名稱、返回類型和參數。函數定義提供了函數的實際主體。

return_type?function_name( parameter list )

{

body of the function

}

如果函數要使用參數,則必須聲明接受參數值的變量,這些變量稱為函數的形式參數。形式參數就像函數內的其他局部變量,進入函數被創建,退出函數被銷毀。三種函數傳遞參數的方式:

調用類型

描述

傳值調用

該方法把參數的實際值賦值給函數的形式參數。在這種情況下,修改函數內的形式參數對實際參數沒有影響。

指針調用

該方法把參數的地址賦值給形式參數。在函數內,該地址用于訪問調用中要用到的實際參數。這意味著,修改形式參數會影響實際參數。

引用調用

該方法把參數的引用賦值給形式參數。在函數內,該引用用于訪問調用中要用到的實際參數。這意味著,修改形式參數會影響實際參數。

傳值調用:

void?swap(int x, int y)

{

int temp;

temp = x;

x = y;

y = temp;

return;

}

指針調用:

void swap(int *x, int *y){

???int temp;

???temp = *x;???

???*x = *y;???????? ??

*y = temp;???? ?

???return;

}

引用調用:

void swap(int &x, int &y){

???int temp;

???temp = x;

???x = y; ??????

y = temp; ??

???return;

}

二、C++數字:

13.1、C++數字定義:

// 數字定義

short i; int j; long k; float l; double d;

13.2、C++數學運算:

引入數學頭文件<cmath>,可調用的函數:

序號

函數 & 描述

1

double cos(double);
該函數返回弧度角(double 型)的余弦。

2

double sin(double);
該函數返回弧度角(double 型)的正弦。

3

double tan(double);
該函數返回弧度角(double 型)的正切。

4

double log(double);
該函數返回參數的自然對數。

5

double pow(double, double);
假設第一個參數為 x,第二個參數為 y,則該函數返回 x 的 y 次方。

6

double hypot(double, double);
該函數返回兩個參數的平方總和的平方根,也就是說,參數為一個直角三角形的兩個直角邊,函數會返回斜邊的長度。

7

double sqrt(double);
該函數返回參數的平方根。

8

int abs(int);
該函數返回整數的絕對值。

9

double fabs(double);
該函數返回任意一個浮點數的絕對值。

10

double floor(double);
該函數返回一個小于或等于傳入參數的最大整數。

13.3、C++隨機數:

關于隨機數生成器有兩個相關函數:rand(),該函數只返回一個偽隨機數;生成隨機數之前必須先調用srand()函數。

#include?<iostream>

#include <ctime>

#include <cstdlib>

using namespace std;

int main () {

int i,j;

srand( (unsigned)time( NULL ) );

for( i = 0; i < 8; i++ ) {

j= rand(); cout <<"隨機數: " << j << endl;

}

return 0;

}

三、C++數組:

C++數組用來存儲一個固定大小的相同類型元素的順序集合。數組中的特定元素可以通過索引訪問。所有的數組都是由連續的內存位置組成。

聲明數組:

type arrayName [ arraySize ];

初始化數組:

Int a[5] = {1,2,3,5,6];

訪問數組元素:

Int i = a[2];

多維數組:

type name[size1][size2]...[sizeN];

四、C++字符串:

C++字符串是使用null字符\0終止的一維字符數組。

char s[] = “example”;

操作字符串的函數:

序號

函數 & 目的

1

strcpy(s1, s2);
復制字符串 s2 到字符串 s1。

2

strcat(s1, s2);
連接字符串 s2 到字符串 s1 的末尾。連接字符串也可以用?+?號

3

strlen(s1);
返回字符串 s1 的長度。

4

strcmp(s1, s2);
如果 s1 和 s2 是相同的,則返回 0;如果 s1<s2 則返回值小于 0;如果 s1>s2 則返回值大于 0。

5

strchr(s1, ch);
返回一個指針,指向字符串 s1 中字符 ch 的第一次出現的位置。

6

strstr(s1, s2);
返回一個指針,指向字符串 s1 中字符串 s2 的第一次出現的位置。

五、C++指針:

每個變量都有一個內存位置,每個內存位置都定義了可使用&運算符訪問的地址。

Int var;

&var //變量的地址。

指針是一個變量,其值為另一個變量的地址,即內存位置的直接地址。

指針的聲明:type *var-name。

#include?<iostream>

using namespace std;

int main () {

int var = 2;

int *p;

p = &var;

cout << "Value of var variable: ";

cout << var << endl;

cout << "Address stored in p variable: ";

cout << p << endl;

cout << "Value of *p variable: ";

cout << *p << endl;

return 0;

}

六、C++引用:

引用變量是一個別名,它是某個已存在變量的另一個名字。一旦把引用初始化為某個變量,就可以使用該引用名稱或變量名稱來指向變量。

創建引用:

Int i = 18;int& j = i;其中&讀作應用,j為一個初始化為i的整型引用。

七、C++日期 & 時間:

為了使用日期和時間相關的函數和結構,C++可以引用<ctime>頭文件,有四個與時間相關的類型:clock_t、time_t、size_t和tm。tm數據結構:

struct?tm {

int tm_sec; // 秒,正常范圍從 0 到 59,但允許至 61

int tm_min; // 分,范圍從 0 到 59

int tm_hour; // 小時,范圍從 0 到 23 int

tm_mday; // 一月中的第幾天,范圍從 1 到 31

int tm_mon; // 月,范圍從 0 到 11

int tm_year; // 自 1900 年起的年數

int tm_wday; // 一周中的第幾天,范圍從 0 到 6,從星期日算起

int tm_yday; // 一年中的第幾天,范圍從 0 到 365,從 1 月 1 日算起

int tm_isdst; // 夏令時

};

時間日期相關函數:

序號

函數 & 描述

1

time_t time(time_t *time);
該函數返回系統的當前日歷時間,自 1970 年 1 月 1 日以來經過的秒數。如果系統沒有時間,則返回 -1。

2

char *ctime(const time_t *time);
該返回一個表示當地時間的字符串指針,字符串形式?day month year hours:minutes:seconds year\n\0

3

struct tm *localtime(const time_t *time);
該函數返回一個指向表示本地時間的?tm?結構的指針。

4

clock_t clock(void);
該函數返回程序執行起(一般為程序的開頭),處理器時鐘所使用的時間。如果時間不可用,則返回 -1。

5

char * asctime ( const struct tm * time );
該函數返回一個指向字符串的指針,字符串包含了 time 所指向結構中存儲的信息,返回形式為:day month date hours:minutes:seconds year\n\0。

6

struct tm *gmtime(const time_t *time);
該函數返回一個指向 time 的指針,time 為 tm 結構,用協調世界時(UTC)也被稱為格林尼治標準時間(GMT)表示。

7

time_t mktime(struct tm *time);
該函數返回日歷時間,相當于 time 所指向結構中存儲的時間。

8

double difftime ( time_t time2, time_t time1 );
該函數返回 time1 和 time2 之間相差的秒數。

9

size_t strftime();
該函數可用于格式化日期和時間為指定的格式。

#include <iostream>

#include <ctime>

using namespace std;

int main( ) {

// 基于當前系統的當前日期/時間

time_t now = time(0);

// 把 now 轉換為字符串形式

char* dt = ctime(&now);

cout << "本地日期和時間:" << dt << endl;

// 把 now 轉換為 tm 結構

tm *gmtm = gmtime(&now);

dt = asctime(gmtm);

cout << "UTC 日期和時間:"<< dt << endl;

}

八、C++輸入輸出:

I/O庫頭文件:

頭文件

函數和描述

<iostream>

該文件定義了?cin、cout、cerr?和?clog?對象,分別對應于標準輸入流、標準輸出流、非緩沖標準錯誤流和緩沖標準錯誤流。

<iomanip>

該文件通過所謂的參數化的流操縱器(比如?setw?和?setprecision),來聲明對執行標準化 I/O 有用的服務。

<fstream>

該文件為用戶控制的文件處理聲明服務。我們將在文件和流的相關章節討論它的細節。

標準輸出流cout:

cout << "Value of str is : " << str << endl;

標準輸入流cin:

cin >> name;

標準錯誤流cerr:

cerr << "Error message : " << str << endl;

標準日志流clog:

clog?<< "Error message : " << str << endl;

九、C++數據結構:

結構式C++中用戶自定義的可用數據類型,允許存儲不同類型的數據項。

結構定義:

struct type_name {

member_type1 member_name1;

member_type2 member_name2;

member_type3 member_name3;

. .

} object_names;

訪問結構成員:使用成員訪問運算符“.”:

struct Books {

char title[10];

char author[10];

char subject[20];

int book_id;

};

Books Book1;

Book1.book_id?= 147258;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162451.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162451.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162451.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一站式解決Mac音視頻轉換需求——Xilisoft Video Converter Ultimate for Mac

在數字化時代&#xff0c;音視頻的應用越來越廣泛&#xff0c;不同的設備和平臺對音視頻格式的要求也不盡相同。因此&#xff0c;如何找到一款功能強大、易于操作的音視頻轉換軟件成為了Mac用戶的迫切需求。而Xilisoft Video Converter Ultimate for Mac&#xff08;曦力音視頻…

4.18每日一題(極坐標累次積分到直角坐標累次積分的轉換)

注&#xff1a;rdr化為直角坐標以后r直接消去了&#xff0c;不需要計算

可編程交流回饋式負載箱在電源設備中的應用

可編程交流回饋式負載箱可以用于測試電源設備的輸出能力&#xff0c;通過在負載箱中設置不同的負載條件&#xff0c;可以模擬不同的工作負載情況&#xff0c;從而測試電源設備在不同負載下的輸出能力和穩定性。這對于電源設備的設計和生產非常重要&#xff0c;可以幫助制造商評…

2023年亞太杯數學建模亞太賽C題思路解析+代碼+論文

下文包含&#xff1a;2023年亞太杯數學建模亞太賽C題思路解析代碼參考論文等及如何準備數學建模競賽&#xff08;23號比賽開始后逐步更新&#xff09; C君將會第一時間發布選題建議、所有題目的思路解析、相關代碼、參考文獻、參考論文等多項資料&#xff0c;幫助大家取得好成…

SELinux refpolicy詳解(1)

本文部分內容參考&#xff1a; SELinux - ArchWiki SELinux_百度百科 一、SELinux介紹 1. SELinux簡介 SELinux&#xff08;Security-Enhanced Linux&#xff0c;安全增強型Linux&#xff09;是美國國家安全局&#xff08;NSA&#xff09;對于強制訪問控制的實現&#xff0…

【python學習】基礎篇-常用函數-偏函數

偏函數(Partial function)是指固定一個函數的部分參數&#xff0c;返回一個新的函數。 在Python中&#xff0c;可以使用functools模塊中的partial()函數來創建偏函數。 偏函數的用法如下&#xff1a; 1.首先&#xff0c;導入functools模塊中的partial()函數。 from functool…

css實現水波紋效果

css實現水波紋效果 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…

HarmonyOS ArkTS Video組件的使用(七)

概述 在手機、平板或是智慧屏這些終端設備上&#xff0c;媒體功能可以算作是我們最常用的場景之一。無論是實現音頻的播放、錄制、采集&#xff0c;還是視頻的播放、切換、循環&#xff0c;亦或是相機的預覽、拍照等功能&#xff0c;媒體組件都是必不可少的。以視頻功能為例&a…

C 語言嵌套結構體

C 語言嵌套結構體 C為我們提供了將一個結構嵌套在另一個結構中的功能&#xff0c;從而創建復雜的數據類型。例如&#xff0c;我們可能需要在結構中存儲實體員工的地址。而地址也可以包含其他信息&#xff0c;例如街道編號&#xff0c;城市&#xff0c;地區和密碼。因此&#x…

CVE-2022-21661

簡介 CVE-2022-21661是一個與WordPress相關的漏洞&#xff0c;涉及到SQL注入問題。該漏洞主要源于WordPress的WQ_Tax_Query類中的clean_query函數&#xff0c;可能允許攻擊者通過控制傳遞給該函數的數據來控制生成的SQL查詢&#xff0c;從而執行任意的SQL代碼。 當WordPress的…

【ROS 2 進階-MoveIt!】MoveIt!中的關鍵節點

所有內容請查看&#xff1a;博客學習目錄_Howe_xixi的博客-CSDN博客 原文檔鏈接&#xff1a;Docs

自動駕駛軌跡預測學習筆記

目錄 VectorNet&#xff1a;自動駕駛軌跡預測 CVPR2023 軌跡預測冠軍方案 QCNeXt VectorNet&#xff1a;自動駕駛軌跡預測 VectorNet&#xff1a;自動駕駛軌跡預測 - 知乎 CVPR2023 軌跡預測冠軍方案 QCNeXt CVPR2023 軌跡預測冠軍方案&#xff01;QCNeXt&#xff1a;新一代…

什么是索引下推

索引下推介紹 索引下推&#xff08;INDEX CONDITION PUSHDOWN&#xff0c;簡稱 ICP&#xff09;是在 MySQL 5.6 針對掃描二級索引的一項優化改進。總的來說是通過把索引過濾條件下推到存儲引擎&#xff0c;來減少 MySQL 存儲引擎訪問基表的次數以及 MySQL 服務層訪問存儲引擎的…

持續格式刷

雙擊格式刷即可

專訪|OpenTiny 開源社區 常浩:完成比完美更重要

前言 2023年已過大半&#xff0c;備受關注的 OpenTiny*開源之夏活動也順利結項。開源之夏由中國科學院軟件研究所發起的計劃&#xff0c;目的在于鼓勵在校學生積極參與開源軟件的開發維護&#xff0c;推動優秀開源軟件社區的繁榮發展。該活動聯合各大開源社區&#xff0c;聚焦…

令人贊嘆的花里胡哨的代碼雨動畫效果

【點我-這里送書】 本人詳解 作者:王文峰,參加過 CSDN 2020年度博客之星,《Java王大師王天師》 公眾號:JAVA開發王大師,專注于天道酬勤的 Java 開發問題中國國學、傳統文化和代碼愛好者的程序人生,期待你的關注和支持!本人外號:神秘小峯 山峯 轉載說明:務必注明來源(…

element emitter broadcast向下廣播 dispatch向上分派

emitter 項目使用element的emitter.js&#xff0c;做個使用記錄 function broadcast(componentName, eventName, params) {this.$children.forEach(child > {const name child.$options.name;if (name componentName) {child.$emit.apply(child, [eventName].concat(para…

pytorch訓練出現的bug

訓練過后發現.csv文件左側出現了幾列unname和一列0&#xff0c;1&#xff0c;2。這個時候在訓練就會從unname那一列開始訓練。我們需要把這幾列刪除&#xff0c;之后再重新訓練

華清遠見嵌入式學習——網絡編程——作業3

目錄 作業要求&#xff1a;基于UDP的TFTP文件傳輸 代碼 下載功能效果圖?編輯 上傳功能效果圖 思維導圖 模擬面試題和答案&#xff08;定期更新&#xff09; 作業要求&#xff1a;基于UDP的TFTP文件傳輸 完成文件的上傳和下載功能 代碼 #include<myhead.h>//實現…

前端Math屬性方法匯總集錦

Description of Math Math 是一個內置對象&#xff0c;它擁有一些數學常數屬性和數學函數方法。Math 不是一個函數對象。 Math 用于 Number 類型。它不支持 BigInt。 與其他全局對象不同的是&#xff0c;Math 不是一個構造器。Math 的所有屬性與方法都是靜態的。引用圓周率的寫…