string *func(const string& s) {}
string* arr = func(exp);
string *func(string s) {
static string* ar = nullptr;
if (ar) delete[] ar;
ar = new ar[3];
ar[0] = "qwe";
ar[1] = s;
ar[2].clear();
return ar;
}
vector<string> func(string s) {
vector<string> r;
r.reserve(3);
r.push_back("qwe");
r.push_back(s);
r.push_back(std::string());
return r;
}
А это значит, что манипулируя членами b я буду редактировать память a?
Type& Type::operator=(const Type& x);
BigInt& BigInt::operator = (int x);
class C
{
public:
C() {}
C (const C&) { std::cout << "Copy ctor" << std::endl; }
C & operator = (const C&) { std::cout << "Assign" << std::endl; return *this; }
};
int main()
{
C a;
C b = a;
В литературе что я читаю это называется присваиванием
Type b;
b = a;
Type b = Type(a);
int a = 10;
C b = C(a);
void sort(int x[5]);
void sort(int (&x)[5]);
typedef int Arr[SIZE];
int sum(Arr arr, int n)
// warning: 'sizeof' on array function parameter 'arr' will return size of 'int *' [-Wsizeof-array-argument]|
If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.
if ((GetAsyncKeyState(VK_F1) & 1) != 0)
. Он означает: с предыдущего вызова GetAsyncKeyState клавиша хоть раз нажималась. С одной стороны, этот бит нерекомендуемый (работает, когда нет других программ, вызывающих GetAsyncKeyState). С другой, возможно, младший бит GetAsyncKeyState() в современной реализации Windows работает именно так, как надо (если программа неактивна, GAKS возвращает 0).квоПрох := НОД(shift, size)
для i = [0..квоПрох)
i1 := i
tmp := a[i]
вечный цикл
i2 := (i1 + shift) % size
если i2 = i
прервать вечный цикл
a[i1] := a[i2]
i1 := i2
a[i1] := tmp
std::wstring xl::colNameW(
size_t aIndex)
{
wchar_t q[21]; // more than enough even for 64-bit system :)
wchar_t* ptr = q + 20;
*ptr = 0; // debug
// Getting size
size_t n = 1;
unsigned long long pw = 26;
while (aIndex>=pw && n<20)
{
aIndex -= static_cast<size_t>(pw);
pw *= 26;
++n;
}
FOR_S(i, 0, n) // макрос, означающий for (size_t i = 0; i < n; ++i)
{
*(--ptr) = static_cast<wchar_t>(L'A' + (aIndex % 26));
aIndex /= 26;
}
return std::wstring(ptr, n);
}
namespace {
bool isCap(const char* x, const char* aEnd)
{
return (x != aEnd && *x >= 'A' && *x <= 'Z');
}
bool isDig(const char* x, const char* aEnd)
{
return (x != aEnd && *x >= '0' && *x <= '9');
}
} // anon namespace
xl::CellCoords xl::parseCellCoords(
const char* aStart, const char* aEnd)
{
enum {
AA = 26,
AAA = 26 + 26 * 26
};
xl::CellCoords r;
// Letter
r.col = 0;
if (!isCap(aStart, aEnd))
return CellCoords::bad();
r.col = *(aStart++) - 'A';
if (isCap(aStart, aEnd)) {
r.col = (r.col * 26) + *(aStart++) - 'A';
if (isCap(aStart, aEnd)) {
r.col = AAA + (r.col * 26) + *(aStart++) - 'A';
} else {
r.col += AA;
}
}
// Number
r.row = 0;
while (isDig(aStart, aEnd)) {
size_t r0 = r.row;
r.row = r.row * 10 + *(aStart++) - '0';
if (r.row < r0)
return CellCoords::bad();
}
if (r.row == 0 || aStart != aEnd)
return CellCoords::bad();
--r.row;
return r;
}
#include "stdio.h"
#include "stdlib.h"
double dr(double zb)
{
return zb = (rand() % 100) / (100 * 1.0);
}
printf("%lf", dr(double zb));
if (d == e)
{
printf("Win! your cash:%lf", winWay(a, b));
double a = winWay(a, b);
}
double a
— считаем, что a определилась. = winWay(a, b)
— считаем, что используется ОНА ЖЕ, а не более ранняя a. Естественно, неинициализированная.