Как сохранить символ в списке связанных списков в C [duplicate]

Самая простая вещь - статические переменные или статические методы находятся на уровне класса. Переменные или методы уровня класса загружаются до методов или переменных уровня экземпляра. И, очевидно, вещь, которая не загружена, не может быть использована. Поэтому java-компилятор, не позволяющий обрабатывать вещи во время выполнения, решает во время компиляции. Вот почему он дает вам ошибку, не статические вещи не могут быть переданы из статического контекста. Вам просто нужно ознакомиться с областью уровня класса, областью уровня экземпляра и локальной областью.

34
задан Quinn Taylor 29 June 2009 в 18:45
поделиться

4 ответа

Будьте осторожны с различием между 'c' и "c"

'c' является символом, подходящим для форматирования с% c

"c", является символом char *, указывающим на блок памяти с длиной 2 (с нулевым терминатором).

10
ответ дан Douglas Leeder 26 August 2018 в 04:31
поделиться
  • 1
    Технически термин "с" это char * с длиной 4 (или любым размером вашего указателя), который указывает на блок памяти с 2 символами в нем ('c' и '\ 0'). Но это просто педантично. – paxdiablo 22 November 2008 в 03:01
  • 2
    Добавлена ​​краткая заметка о том, что "c" является указателем. – Douglas Leeder 22 November 2008 в 13:43
char variable = 'x';  // the variable is a char whose value is lowercase x

printf("<%c>", variable); // print it with angle brackets around the character
3
ответ дан EvilTeach 26 August 2018 в 04:31
поделиться

Как упоминалось в одном из других ответов, для этой цели вы можете использовать putc (int c, FILE * stream), putchar (int c) или fputc (int c, FILE * stream).

Важно отметить, что использование любой из вышеперечисленных функций от некоторых до значительно быстрее, чем использование любых функций разбора формата, таких как printf.

Использование printf похоже на использование пулемета для запуска одной пули .

15
ответ дан Roalt 26 August 2018 в 04:31
поделиться
  • 1
    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 */
64
ответ дан TravisHendrickson 26 August 2018 в 04:31
поделиться
  • 1
    Я использую MS C 6.0, и он не работает. Не дает ошибок. – Aydya 21 November 2008 в 21:27
  • 2
    Не могли бы вы разместить некоторые неработающие примеры кода? Убедитесь, что «c» имеет нижний регистр в «% c». – Adam Rosenfield 21 November 2008 в 21:30
  • 3
    вы пытались скопировать и вставить мой пример. % c должен работать, учитывая, что параметр имеет правильный тип (символ, а не строка). – Evan Teran 21 November 2008 в 21:42
Другие вопросы по тегам:

Похожие вопросы: