Введение в C++||Справочник по C++||Дата и время в C++

Ссылки на С++

Ссылки на С++

Ссылочная переменная — это псевдоним, то есть другое имя существующей переменной. Как только вы инициализируете ссылку на переменную, вы можете использовать имя ссылки или имя переменной, чтобы указать на переменную.

Ссылки C++ против указателей

Ссылки легко спутать с указателями, и между ними есть три основных отличия:

  • Нулевых ссылок нет. Ссылки должны быть связаны с действительной частью памяти.
  • После инициализации ссылки на объект она не может указывать на другой объект. Указатель может указывать на другой объект в любое время.
  • Ссылки должны быть инициализированы во время создания. Указатели могут быть инициализированы в любое время.

Создать ссылку на C++

Просто подумайте об имени переменной как о метке, которую переменная прикрепляет к ячейке памяти, и вы можете думать о ссылке как о второй метке, которую переменная прикрепляет к ячейке памяти. Таким образом, вы можете получить доступ к содержимому переменной по ее исходному имени или по ссылке. Например:

int i = 17;
double d =23.5;

Мы можем объявить ссылочные переменные для i и d следующим образом:

int& r = i;
double& s = d;

В этих объявлениях & читается как ссылка . Таким образом, первое объявление может читаться как «r — это ссылка на целое число, инициализированное значением i», а второе объявление может читаться как «s — это ссылка на двойное число, инициализированное значением d». В следующем примере используются int и двойные ссылки:

#include <iostream>

using namespace std;
 
int main (){
    // 声明简单的变量
    int    i;
    double d; 
    // 声明引用变量
    int&    r = i;
    double& s = d;
 
    i = 5;
    cout << "Value of i : " << i << endl;
    cout << "Value of i reference : " << r  << endl;
 
    d = 11.7;
    cout << "Value of d : " << d << endl;
    cout << "Value of d reference : " << s  << endl;
   
    return 0;
}

Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат:

Значение i : 5
Значение ссылки i: 5
Значение d : 11,7
Значение d ссылки: 11,7

Ссылки обычно используются в списках параметров функций и возвращаемых значениях функций. Ниже перечислены две важные концепции, связанные со ссылками на C++, о которых должны знать программисты на C++.

концепция описывать
принимает ссылку в качестве параметра C++ поддерживает передачу ссылок на функции в качестве параметров, что безопаснее, чем передача обычных параметров.
вернуть ссылку Ссылки могут быть возвращены из функций C++, как и любой другой тип данных.

C++ Дата и время

C++ Дата и время

Стандартная библиотека C++ не предоставляет так называемый тип даты. C++ наследует структуры и функции языка C для управления датой и временем. Чтобы использовать функции и структуры, связанные с датой и временем, в программе на C++ необходимо сослаться на заголовочный файл <ctime>.

Существует четыре типа, связанных со временем: clock_t, time_t, size_t  и  tm . Типы clock_t, size_t и time_t могут представлять системное время и дату в виде целого числа.

Тип структуры  tm  сохраняет дату и время в виде структуры C, а определение структуры 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 января
    int tm_isdst; // летнее время
}

Ниже приведены важные функции, связанные с датой и временем в C/C++. Все эти функции являются частью стандартной библиотеки C/C++, вы можете проверить подробности каждой функции в стандартной библиотеке C++.

серийный номер описание функции
1 time_t time(time_t *time); 
Эта функция возвращает текущее календарное время системы, количество секунд, прошедших с 1 января 1970 года. Возвращает .1, если в системе нет времени.
2 char *ctime(const time_t *time); 
Возвращает указатель строки, представляющий местное время, в форме  день месяц год часы:минуты:секунды год\n .
3 struct tm *localtime(const time_t *time); 
Эта функция возвращает указатель на  структуру tm  , представляющую местное время.
4 clock_t clock(void); 
Эта функция возвращает время, использованное часами процессора с начала выполнения программы (обычно с начала программы). Возвращает .1, если время недоступно.
5 char * asctime ( const struct tm * time ); 
Эта функция возвращает указатель на строку, которая содержит информацию, хранящуюся в структуре, на которую указывает время, и формат возврата: день месяц дата часы:минуты:секунды год\n \ 0.
6 struct tm *gmtime(const time_t *time); 
Эта функция возвращает указатель на время, а время представляет собой структуру tm, выраженную в универсальном скоординированном времени (UTC), также известном как среднее время по Гринвичу (GMT).
7 time_t mktime(struct tm *time); 
Эта функция возвращает календарное время, которое эквивалентно времени, хранящемуся в структуре, на которую указывает time.
8 double difftime ( time_t time2, time_t time1 ); 
Эта функция возвращает разницу в секундах между временем1 и временем2.
9 size_t strftime(); 
Эту функцию можно использовать для форматирования даты и времени в указанном формате.

текущая дата и время

В следующем примере получаются текущая системная дата и время, включая местное время и всемирное координированное время (UTC).

#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;
}

Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат:

Местная дата и время: суббота, 8 января, 20:07:41 2011 г.

Дата и время UTC: воскресенье, 9 января, 03:07:41 2011 г.

форматировать время с помощью struct tm

Структура tm  особенно важна при работе с датой и временем в C/C++. Структура tm содержит дату и время как структура C. Большинство функций, связанных со временем, используют структуру tm. В следующих примерах используется структура tm и различные функции, связанные с датой и временем.

Прежде чем практиковаться в использовании структур, вам необходимо иметь общее представление о структурах C и о том, как использовать оператор стрелка -> для доступа к элементам структуры.

#include <iostream>
#include <ctime>

using namespace std;

int main(){
    // 基于当前系统的当前日期/时间
    time_t now = time(0);
    cout << "1970年1月1日到目前经过的秒数:" << now << endl;

    tm *ltm = localtime(&now);

    // 输出 tm 结构的各个组成部分
    cout << "年: "<< 1900 + ltm->tm_year << endl;
    cout << "月: "<< 1 + ltm->tm_mon<< endl;
    cout << "日: "<<  ltm->tm_mday << endl;
    cout << "时间: "<< 1 + ltm->tm_hour << ":";
    cout << 1 + ltm->tm_min << ":";
    cout << 1 + ltm->tm_sec << endl;
} 

Когда приведенный выше код скомпилирован и выполнен, он дает следующий результат:

Количество секунд, прошедших с 1 января 1970 года по настоящее время: 1524456057.
Год: 2018
месяцев: 4
День: 23
Время: 5:1:58

Supongo que te gusta

Origin blog.csdn.net/m0_69824302/article/details/130067814
Recomendado
Clasificación