Что значит quot – Что значит «сильное плечо»? — Покинул нас — Дневник — Православные знакомства «Азбука верности»

C++ - Что значит & quot; =! & Quot; оператор делает?

Я случайно набрал =! вместо != это вызвало огромную ошибку в системе, которая некоторое время оставалась незамеченной; С тех пор я исправил это, но мне любопытно, что =! делает.

У меня было что-то вроде этого

void foo(int param)
{
int a = 0;

...

if (a =! param)
{
// never got here even when `a` was not equal to `param`
}
...
}

Может кто-нибудь объяснить, что выше if заявление оценивает?

4

Решение

Это выражение:

a =! param

присваивает значение !param в a, !param является отрицательной версией параметра, оцененного в логическом контексте.

Операторы присваивания возвращают значение правой части, поэтому if (a = !param) также выполняет if тело, если !param правда.

26

Другие решения

Это не один =! оператор. Это = а также !, назначение и отрицание.

Это эквивалентно if (a = !param), или же

a = !param; if (a) { }

9

=! не оператор. Это = (присваивание) оператор и ! (логическое не) оператор.

Так что у тебя есть if (a = !param), Присвоение возвращает значение присваивания, поэтому у вас по существу есть:

a = !param;
if (a) {
...

6

Если вы считаете, что это может быть несколько токенов, эффект должен быть простым:

if (a = !param)

5

Важный: '=!' != '!=' 🙂

Но: '=!' == 'assignment of the negation of a value'

например в псевдо:

bool a= true;
bool b=!a;

так что б ложно!

2

знак равно Не оператор. Вы можете понять это так. Предположим, что есть заявление a=!b это присваивание операнда b в a, но здесь поворот заключается в том, что перед присваиванием b к a мы обращаем состояние b, префиксируя операнд b с помощью! что в принципе логично, а не оператор.

1

PHP - что значит /../ или & quot; /../& quot; значит в файловой системе?

Я знаю это . относится к текущему каталогу, а ./ относится к файлам в текущем каталоге.

Я также знаю, что .. относится к родительскому каталогу

Недавно я наткнулся на следующую строку:

require __DIR__.'/../vendor/autoload.php';

(Это было в файле index.php laravel.)

Вот что конкретно означает «/../»?

Спасибо

Изменить: я пытался поиск в Google. Я попытался выполнить поиск с использованием escape-последовательностей, например //..//, но он не дал требуемого ответа.

2

Решение

Вы читаете это так:

__DIR__      // start in the current directory
../          // go up one directory from where you are
vendor/      // go into the vendor directory
autoload.php // and require the autoload.php file

Экстра / между __DIR__ а также ../ просто чтобы убедиться, что текущий каталог заканчивается косой чертой, так что вы получите, например, code/../vendor/autoload.php вместо code../vendor/autoload.php

2

Другие решения

В дорожках . ссылается на текущий (рабочий) каталог и .. ссылается на родительский каталог (если существует). Оба являются «горячими клавишами» для фактической записи именованных каталогов (если, например, вы не знаете имя текущего / родительского каталога): Вот пример:

Если вы находитесь в папке /root:

1  ./test        //--> points to folder 'test' (relative path)
2  /root/test    //--> points to folder 'test' (absolut path)

оба равны. И если вы находитесь в папке /root/test:

1  ./..          //--> points to folder 'root' (relative path)
2  /root         //--> points to folder 'root' (absolut path)

0

../ перейти в родительский каталог, а затем быть в том же корневом каталоге проекта / до ../

require __DIR__.'/../vendor/autoload.php';

0

Он ссылается на родительский каталог текущего пути (конечно, если родительский каталог существует).

0

В принципе, /../ не имеет конкретного определения, потому что это часть __DIR__.'/../vendor/autoload.php' который состоял из .. а также /vendor/autoload.php, Который

.. означает вернуться к текущему родительскому каталогу, а потом скажет вам ввести или cd в vendor затем перейдите к autoload.phpи все относительно __DIR__,

Пример:

Представь, что ты хочешь gedit файл в другом каталоге из вашего текущего каталога, который структурирован ниже

/home/handsomeyou/Documents/Code/ -> your current directory
/home/hansdomeyou/Documents/Tasks/task_list.txt -> your target

Есть много подходов для достижения этой цели, но чтобы сделать его актуальным для вашего вопроса, мы сделаем это

$ gedit ../Tasks/task_list.txt

0

PHP - Что значит "с." и & quot; n & quot; значит / делать в этом MySQL утверждении?

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

Вот утверждение в вопросе:

select s.* from $tableA n, $tableB s where
n.id='$send' and
n.status='$status' and
n.field=s.id";

Я понимаю, что вплоть до основ это утверждение получает все поля из таблиц А и Я просто не уверен, что s. делает или что n делает в этом заявлении? они просто в качестве идентификаторов или я совершенно не прав в этом смысле? Я рад предоставить больше информации, если это необходимо.

0

Решение

Они называются SQL Table Aliases и, в основном, это временные имена, которые вы даете таблицам для лучшей читаемости, когда вы используете имена таблиц для указания столбца.

В вашем примере

SELECT s.* FROM $tableA n, $tableB s
WHERE  n.id='$send'
AND n.status='$status'
AND n.field=s.id ;

такой же как

SELECT $tableB.* FROM $tableA, $tableB
WHERE  $tableA.id='$send'
AND $tableA.status = '$status'
AND $tableA.field = $tableB.id ;

но, очевидно, его легче читать.

Псевдонимы таблиц еще более полезны, когда вы присоединяетесь к большему количеству таблиц, и абсолютно необходимы при самостоятельном объединении.

Синтаксическая заметка:

Вы можете или не можете использовать

AS Ключевое слово, когда псевдоним таблицы.

SELECT table_name AS alias

такой же как

SELECT table_name alias

и хотя иногда он длиннее, это приводит к лучшей читаемости (например, в большом и грязном запросе большой AS легче заметить 🙂

3

Другие решения

Других решений пока нет …

C++ - что значит "BUGCHECK_STR: APPLICATION_FAULT_NULL_CLASS_PTR_READ_AFTER_CALL" & quot; значит в windbg! проанализировать -v вывод

Я пытаюсь проанализировать файл аварийного дампа с помощью windbg и набрать команду расширения, чтобы получить некоторый базовый результат анализа «! Analysis -v», и получить результат следующим образом: — (Я вставил только часть информации здесь)

....
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 00000004
Attempt to read from address 00000004

PROCESS_NAME:  tscommand.exe

...

LAST_CONTROL_TRANSFER:  from 010444c2 to 010181e6

FAULTING_THREAD:  00002270

BUGCHECK_STR:  APPLICATION_FAULT_NULL_CLASS_PTR_READ_AFTER_CALL

PRIMARY_PROBLEM_CLASS:  NULL_CLASS_PTR_READ_AFTER_CALL

DEFAULT_BUCKET_ID:  NULL_CLASS_PTR_READ_AFTER_CALL

STACK_TEXT:

...

Что здесь означает «BUGCHECK_STR: APPLICATION_FAULT_NULL_CLASS_PTR_READ_AFTER_CALL»? Означает ли это, что приложение является ошибкой из-за указателя класса NULL после вызова функции? Я ищу в сети, не могу найти ничего о APPLICATION_FAULT_NULL_CLASS_PTR_READ_AFTER_CALL.

1

Решение

«BUGCHECK_STR» — это классификация, используемая Microsoft для «классификации» ошибок, и эта, по-видимому, указывает на то, что у вас есть указатель класса NULL, что мне кажется правильным, поскольку чтение памяти происходит с адреса 4, который является небольшое смещение от основания нулевого указателя.

По сути, у вас возникает ситуация, когда вы используете указатель на что-то (я не уверен на 100%, что это класс как таковой), и указатель равен NULL в тот момент, когда вы разыменовываете его. Вполне возможно, что это вызвано вызовом функции-члена, и отладчик может выяснить это [глядя на комбинацию стека вызовов, символов и значений регистров], но WinDBG не знает, как получить эти вещи. время от времени это неправильно — это эвристика, так что это что-то вроде: «Если у нас есть это значение здесь, и это значение там, и что-то еще соответствует этому диапазону, то именно эта группа ошибок».

Если вы разместите немного больше значений стека / регистра в момент сбоя, возможно, будет возможно узнать немного больше о том, что пошло не так.

Из комбинации кода ошибки и дополнительных данных с ошибкой очевидно, что ваш код читает адрес 4 в памяти. Что обычно означает попытку использовать второе целое число или число с плавающей точкой в ​​классе / структуре, на которые указывает «NULL». Я видел это довольно много раз, когда я забыл «if (ptr! = NULL) …» в моем коде. Случается с большинством из нас время от времени …

2

Другие решения

Других решений пока нет …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *