cmd/bat
- 83 ответа
- 0 вопросов
63
Вклад в тег
*
: в Си X[i][j]
можно заменить на *(*(X + i) + j)
(а также на *(X[i] + j)
или (*(X + i))[j]
).X
может быть (в скобках указано в каких случаях уместна запись X[i][j]
):a
) массивом массивов;b
) указателем на массив (являющегося 0-й элементом динамического массива массивов);c
) массивом указателей (на 0-е элементы динамических массивов);d
) указателем на указатель (на 0-й элемент динамического массива указателей на 0-е элементы динамических массивов).#define TElem int
#define M 2
#define N 3
TElem a[M][N] // массив массивов
= {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
TElem (*b)[N] = &a[0]; // указатель на массив
/* // то же самое,
TElem (*b)[N] = a; // но короче
*/
TElem *c[M] = {a[0], a[1]}; // массив указателей
TElem **d = &c; // указатель на указатель
#include <stdio.h>
int main(void) {
TElem x;
#define i 1
#define j 2
puts("X[i][j]");
x = a[i][j]; printf("%d\n", x);
x = b[i][j]; printf("%d\n", x);
x = c[i][j]; printf("%d\n", x);
x = d[i][j]; printf("%d\n", x);
puts("(*(X + i))[j]");
x = (*(a + i))[j]; printf("%d\n", x);
x = (*(b + i))[j]; printf("%d\n", x);
x = (*(c + i))[j]; printf("%d\n", x);
x = (*(d + i))[j]; printf("%d\n", x);
puts("*(X[i] + j)");
x = *(a[i] + j); printf("%d\n", x);
x = *(b[i] + j); printf("%d\n", x);
x = *(c[i] + j); printf("%d\n", x);
x = *(d[i] + j); printf("%d\n", x);
puts("*(*(X + i) + j)");
x = *(*(a + i) + j); printf("%d\n", x);
x = *(*(b + i) + j); printf("%d\n", x);
x = *(*(c + i) + j); printf("%d\n", x);
x = *(*(d + i) + j); printf("%d\n", x);
return 0;
}
Условный
for /f "Tokens=*" %f in ('dir /l/b/a-d') do (rename "%f" "%f")
поэтому не срабатывает.
Вручную приходится делать Abc.jpg -> 1Abc.jpg -> abc.jpg
(ren "%f" "to_lower_%f" && ren "to_lower_%f" "%f")
for %g in ("%~nxf") do if not "%f"==%g
:for /f "delims=" %f in ('dir /l/b/a-d') do for %g in ("%~nxf") do if not "%f"==%g (ren "%f" "to_lower_%f" && ren "to_lower_%f" "%f")
for /f "delims=" %%f in ('dir /l/b/a-d') do for %%g in ("%%f*") do (
if /i "%%f"=="%%g" if not "%%f"=="%%g" (
ren "%%f" "to_lower_%%f" && ren "to_lower_%%f" "%%f"
)
)