Если вы хотите изменить содержимое переменной в функции в C, указатель также является своеобразной переменной, вы должны передать ее с помощью указателя или косвенной ссылки , используя всегда &
адрес и *
операторы разыменования. Я имею в виду, что *
оператор всегда используется и предшествует при изменении значения переменной.
#include <stdio.h>
#include <stdlib.h>
void changeIntVal(int *x) {
*x = 5;
}
void changePointerAddr(int **q) {
int *newad;
*q = newad;
}
void changePPAddr(int ***q) {
int **dummy;
*q = dummy;
}
int main() {
int *p;
int **pp;
int *tempForPP;
int a = 0;
printf("\n The address pointing by p -> %p, pp -> %p, value of a -> %d ", p, pp, a);
p = &a;
pp = &tempForPP;
printf("\n The address pointing by p -> %p, pp -> %p, value of a -> %d ", p, pp, a);
changeIntVal(&a); // ----
// |---
changePointerAddr(&p); // ---- |----> parts of what I mean
// |---
changePPAddr(&pp); // ----
printf("\n The address pointing by p -> %p, pp -> %p, value of a -> %d ", p, pp, a);
return 0;
}
Если Ваше действие не является идемпотентом, то Вы ДОЛЖНЫ использование POST
. Если Вы не делаете, Вы просто напрашиваетесь на неприятности по линии. GET
, PUT
и DELETE
методы , потребовал быть идемпотентом. Вообразите то, что произошло бы в Вашем приложении, если бы клиент выбирал каждое возможное с упреждением GET
запрос на Ваш сервис - если это вызвало бы побочные эффекты, видимые клиенту, то что-то неправильно.
я соглашаюсь, что отправка POST
со строкой запроса, но без тела кажется нечетной, но я думаю, что это может быть соответствующим в некоторых ситуациях.
Думают о части запроса URL как команда к ресурсу для ограничения объема текущего запроса. Как правило, строки запроса используются, чтобы отсортировать или отфильтровать GET
запрос (как ?page=1&sort=title
), но я предполагаю, что имеет смысл на POST
также ограничивать объем (возможно, как ?action=delete&id=5
).
Я соглашаюсь - вероятно, более безопасно использовать ПОЛУЧИТЬ запрос, если Вы просто передаете данные в URL а не в теле. См. этот подобный вопрос для некоторых дополнительных представлений о целом понятии POST+GET.
лагерь REST имеет некоторые руководящие принципы, что мы можем использовать для стандартизации способа, которым мы используем глаголы HTTP. Это полезно при создании УСПОКОИТЕЛЬНОГО API, как Вы делаете.
Вкратце: ДОБЕРИТЕСЬ должно быть Только для чтения т.е. не иметь никакого эффекта на состояние сервера. POST используется для создания ресурса на сервере. ПОМЕЩЕННЫЙ используется, чтобы обновить или создать ресурс. УДАЛИТЕ используется для удаления ресурса.
, Другими словами, если Ваше действие API изменяет состояние сервера, REST советует нам использовать POST/помещать/удалять, но не ДОБИРАТЬСЯ.
Агенты пользователя обычно понимают, что выполнение нескольких СООБЩЕНИЙ плохо и предостережет от него, потому что намерение POST состоит в том, чтобы изменить состояние сервера (например, заплатить за товары на контроле), и Вы, вероятно, не хотите делать это дважды!
Выдерживают сравнение с ПОЛУЧЕНИЕМ, которое можно сделать часто, как Вам нравится (идемпотент).
Вы хотите причины? Вот тот:
веб-форма А не может использоваться для отправления запроса к странице, которая использует соединение, ДОБИРАЮТСЯ и POST. При установке метода формы для ПОЛУЧЕНИЯ, все параметры находятся в строке запроса. При установке метода формы на POST все параметры находятся в теле запроса.
Источник: стандарт HTML 4.01, разделите 17.13 Представлений Формы
С программной точки зрения для клиента это является упаковочным параметры и добавление их на URL и проведение POST по сравнению с ПОЛУЧЕНИЕМ. На серверной стороне это оценивает входящие параметры от querystring вместо отправленных байтов. В основном это - промывка.
то, Где могли быть преимущества/недостатки, могло бы быть в том, как определенная клиентская работа платформ с POST и ПОЛУЧАЕТ стандартные программы в их сетевом стеке, а также как веб-сервер имеет дело с теми запросами. В зависимости от Вашей реализации один подход может быть более эффективным, чем другой. Знание, которое вело бы Ваше решение сюда.
, Тем не менее, с точки зрения программиста, я предпочитаю позволять или POST со всеми параметрами в теле или ПОЛУЧЕНИЕ со всеми параметрическими усилителями на URL, и явно игнорировать параметры URL с любым запросом POST. Это избегает беспорядка.