Самая простая вещь - статические переменные или статические методы находятся на уровне класса. Переменные или методы уровня класса загружаются до методов или переменных уровня экземпляра. И, очевидно, вещь, которая не загружена, не может быть использована. Поэтому java-компилятор, не позволяющий обрабатывать вещи во время выполнения, решает во время компиляции. Вот почему он дает вам ошибку, не статические вещи не могут быть переданы из статического контекста. Вам просто нужно ознакомиться с областью уровня класса, областью уровня экземпляра и локальной областью.
Будьте осторожны с различием между 'c'
и "c"
'c'
является символом, подходящим для форматирования с% c
"c"
, является символом char *, указывающим на блок памяти с длиной 2 (с нулевым терминатором).
char variable = 'x'; // the variable is a char whose value is lowercase x
printf("<%c>", variable); // print it with angle brackets around the character
Как упоминалось в одном из других ответов, для этой цели вы можете использовать putc (int c, FILE * stream), putchar (int c) или fputc (int c, FILE * stream).
Важно отметить, что использование любой из вышеперечисленных функций от некоторых до значительно быстрее, чем использование любых функций разбора формата, таких как printf.
Использование printf похоже на использование пулемета для запуска одной пули .
printf()
для одиночного символа, как покупка книги, чтобы получить лист бумаги.
– exebook
8 November 2013 в 05:58
да, %c
будет печатать один символ:
printf("%c", 'h');
также, putchar
/ putc
тоже будет работать. Из «man putchar»:
#include <stdio.h>
int fputc(int c, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);
* fputc() writes the character c, cast to an unsigned char, to stream.
* putc() is equivalent to fputc() except that it may be implemented as a macro which evaluates stream more than once.
* putchar(c); is equivalent to putc(c,stdout).
EDIT:
Также обратите внимание, что если у вас есть строка, для вывода одного символа, вам нужно получить символ в строке, которая вы хотите вывести. Например:
const char *h = "hello world";
printf("%c\n", h[4]); /* outputs an 'o' character */