Что такое Указатель? [дубликат]

Если вы просто сконструируете тело как строку и передадите его таким образом http.post(), его следует отправить как есть, без каких-либо изменений. Этот код должен проиллюстрировать это, используя httpbin.org:

import http from "k6/http";
import crypto from "k6/crypto";

let payload = `http_request_duration_seconds_bucket{le="0.05"} 24054
http_request_duration_seconds_bucket{le="0.1"} 33444
http_request_duration_seconds_bucket{le="0.2"} 100392
`;

export default function (data) {
    console.log(crypto.sha256(payload, "hex"));
    let resp = http.post("https://httpbin.org/anything", payload);
    console.log(crypto.sha256(resp.json().data, "hex"));
    console.log(resp.body);
}

, он выведет что-то вроде этого:

INFO[0000] 773f0d81713fca0663ad7a01135bf674b93b0859854b2248368125af3f070d29 
INFO[0001] 773f0d81713fca0663ad7a01135bf674b93b0859854b2248368125af3f070d29 
INFO[0001] {
  "args": {}, 
  "data": "http_request_duration_seconds_bucket{le=\"0.05\"} 24054\nhttp_request_duration_seconds_bucket{le=\"0.1\"} 33444\nhttp_request_duration_seconds_bucket{le=\"0.2\"} 100392\n", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Connection": "close", 
    "Content-Length": "161", 
    "Host": "httpbin.org", 
    "User-Agent": "k6/0.23.1 (https://k6.io/)"
  }, 
  "json": null, 
  "method": "POST", 
  "url": "https://httpbin.org/anything"
}

5
задан Community 23 May 2017 в 10:32
поделиться

5 ответов

Указатели не так тверды, как они звучат. Как другие уже сказали, они - переменные, которые содержат адрес некоторой другой переменной. Предположим, что я хотел дать Вам направления своему дому. Я не дал бы Вам изображение своего дома или масштабную модель моего дома; я просто дал бы Вам адрес. Вы могли вывести то, в чем Вы нуждались от этого.

Таким же образом много языков делает различие между передачей значением и передачей ссылкой. По существу это означает, что я передам весь объект в каждый раз, когда я должен обратиться к нему? Или, я просто выделю, это - адрес так, чтобы другие могли вывести то, в чем они нуждаются?

Наиболее современные языки скрывают эту сложность путем выяснения, когда указатели полезны и оптимизируют это для Вас. Однако, если Вы знаете то, что Вы делаете, ручное управление указателем может все еще быть полезным в некоторых ситуациях.

3
ответ дан 18 December 2019 в 09:55
поделиться

Указатель является переменной, которая содержит адрес другой переменной. Это позволяет Вам ссылаться на другую переменную косвенно. Например, в C:

// x is an integer variable
int x = 5;
// xpointer is a variable that references (points to) integer variables
int *xpointer;
// We store the address (& operator) of x into xpointer.
xpointer = &x;
// We use the dereferencing operator (*) to say that we want to work with
// the variable that xpointer references
*xpointer = 7;
if (5 == x) {
    // Not true
} else if (7 == x) {
    // True since we used xpointer to modify x
}
6
ответ дан 18 December 2019 в 09:55
поделиться

Эта статья Википедии даст Вам подробную информацию о том, каков указатель:

В информатике указатель является типом данных языка программирования, значение которого относится непосредственно к (или "указывает на"), другое значение, сохраненное в другом месте в памяти компьютера с помощью ее адреса. Получение или запрос значения, к которому относится указатель, называют, разыменовывая указатель. Указатель является простой реализацией типа данных справочного характера (хотя это очень отличается от средства, называемого ссылкой в C++). Указатели на данные улучшают производительность для работ в циклическом режиме, таких как пересекающая строка и древовидные структуры, и указатели на функции используются для методов привязки в Объектно-ориентированном программировании и динамическом подключении к динамически подключаемым библиотекам (DLLs).

8
ответ дан 18 December 2019 в 09:55
поделиться

Было несколько обсуждений в ТАК об этой теме. Можно найти информацию о теме со ссылками ниже. Существуют несколько другое соответствующее ТАК обсуждения предмета, но я думаю, что они были самыми релевантными. Поиск 'указателей [C++]' в окне поиска (или 'указателей [c]') и Вы получите больше информации также.

В C++ я не могу схватить указатели и классы

Каково различие между современными 'Ссылками' и традиционными 'Указателями'?

1
ответ дан 18 December 2019 в 09:55
поделиться

Как кто-то уже упоминает, указатель является переменной, которая содержит адрес другой переменной.

Это главным образом используется при создании новых объектов (во времени выполнения).

-1
ответ дан 18 December 2019 в 09:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: