Запитання з тегом «c»

C - мова програмування загального призначення, що використовується для системного програмування (ОС та вбудованих), бібліотек, ігор та крос-платформ. Цей тег слід використовувати із загальними питаннями, що стосуються мови C, визначеної стандартом ISO 9899 (остання версія, 9899: 2018, якщо інше не зазначено - також запити, пов’язані з версією тегів c89, c99, c11 тощо). C відрізняється від C ++, і він не повинен поєднуватися з тегом C ++ без раціональної причини.

1
Чому моя програма продовжує застрягати під час роботи програми mandelbrot brainf ***?
Я хотів удосконалити свої навички роботи на C, тому шукаю ідеї деяких програм. Хтось пропонує створити простий перекладач Brainf ***, а потім компілятор. Так ось я. Я створив інтерпретатора, і він працює, як очікувалося, за винятком програми Mandelbrot: A mandelbrot set fractal viewer in brainfuck written by Erik Bosman +++++++++++++[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>+++++++++++++++[[ …

6
C вказівник на декларацію масиву з порозрядним та оператором
Я хочу зрозуміти наступний код: //... #define _C 0x20 extern const char *_ctype_; //... __only_inline int iscntrl(int _c) { return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _C)); } Він походить з файлу ctype.h з вихідного коду операційної системи obenbsd. Ця функція перевіряє, чи знаком є …
9 c  openbsd 

3
foo (void) vs foo (пустота *)
Функціонально та синтаксично кажучи, чи є різниця між функцією, прототипом якої є int foo(void)і int foo(void *)? Я знаю різницю між, наприклад, int bar(int)і int bar(int *)- один з них шукає int, а другий шукає int pointer. Чи voidповодиться так само?

3
+ (+ k--) вираз у С
Я бачив це питання в тесті, в якому ми повинні сказати вихід наступного коду. #include<stdio.h> int main(){ int k = 0; while(+(+k--)!=0) k=k++; printf("%d\n", k); return 0; } Вихід є -1. Я не впевнений, чому це відповідь. Що означає вираз +(+k--)у С?
9 c 

4
Як розмірofof працює з цим перенаправленням вказівника на масив?
Тут у мене є вказівник ptrна масив arrіз 4 цілих чисел. ptrвказує на весь масив. ptr[0]або *ptrвказує на перший елемент масиву, тому додаючи 1, ptr[0]надає адресу другого елемента масиву. Я не можу зрозуміти, чому використання sizeof(ptr[0])дає розмір усього масиву, 16 байт, а не розмір лише першого елемента, 4 байти (як …
9 c  arrays  pointers 

1
Чи ініціалізація об’єктів у Java "Foo f = new Foo ()" по суті однакова, як використання malloc для вказівника на C?
Я намагаюся зрозуміти фактичний процес створення об'єктів на Java - і я думаю, що інші мови програмування. Чи було б неправильним вважати, що ініціалізація об’єктів у Java така ж, як і коли ви використовуєте malloc для структури в C? Приклад: Foo f = new Foo(10); typedef struct foo Foo; Foo …

4
Чому компілятори C оптимізують перемикач і якщо інакше
Нещодавно я працював над особистим проектом, коли натрапив на дивну проблему. У дуже тісному циклі у мене є ціле число зі значенням від 0 до 15. Мені потрібно отримати -1 для значень 0, 1, 8, 9 і 1 для значень 4, 5, 12 і 13. Я звернувся до godbolt, щоб …

2
Чому% f друкує великі значення, коли константи з плаваючою точкою передаються замість змінних?
Чому в даній програмі я отримав різні результати для кожного з них printf? #include <stdio.h> int main() { float c = 4.4e10; printf("%f\n", c); printf("%f\n", 4.4e10); return 0; } І він показує такий вихід: 44000002048.000000 44000000000.000000
9 c 

4
Обчислення вкладеного кореня в C
Мене попросили обчислити наступне вкладене вираз кореня, використовуючи лише рекурсію . Я написав код, який працює нижче, але вони дозволили нам використовувати лише одну функцію та 1 вхід nдля цієї мети, а не 2, як я використовував. Чи може хтось допомогти мені перетворити цей код на одну функцію, яка обчислить …
9 c  recursion  sqrt 

1
C основний параметр
Я написав код, який повинен відображати основні параметри, але коли я його скомпілював і набрав у програмі "*", відображається моя файлова структура. Команда в cmd виглядає так:program.exe 1 2 3 * #include <stdio.h> #include <stdlib.h> int main(int argc, char const* argv[]) { for (int i=0; i<argc; i++) printf("%s\n", argv[i]); return …

2
Яка різниця між класифікатором const у C та класифікатором const у C ++?
Я знайшов коментар користувача R .. : C і C ++ - це не одна і та ж мова. Зокрема, C constне має нічого спільного з C ++ const. Я знаю, що одна різниця між constкласифікатором у C та constкласифікатором у C ++ - це його зв'язок за замовчуванням. Об'єкт, …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.