Рубрики

Напишите программу, которая дает разные результаты на C и C ++

Напишите программу, которая компилируется и запускается как на C, так и на C ++, но дает разные результаты при компиляции компиляторами C и C ++.

Таких программ может быть много, ниже приведены некоторые из них.

1) Символьные литералы обрабатываются по-разному в C и C ++. В C символьные литералы, такие как 'a', 'b', ..etc, рассматриваются как целые числа, а как символы в C ++. (Смотрите это для деталей)

Например, следующая программа выдает sizeof (int) как вывод в C, но sizeof (char) в C ++.

#include<stdio.h>

int main()

{

  printf("%d", sizeof('a'));

  return 0;

}

2) В C нам нужно использовать тег структуры всякий раз, когда мы объявляем переменную структуры. В C ++ тег struct не обязателен. Например, пусть будет структура для ученика . В C мы должны использовать « struct Student » для переменных « Student» . В C ++ мы можем опустить struct и использовать только « Student ».
Ниже приведена программа, основанная на фактах и выдающая разные результаты на C и C ++. Он печатает sizeof (int) в C и sizeof (struct T) в C ++.

#include <stdio.h>

int T;

   

int main()

{

    struct T { double x; };  // В C ++ этот T скрывает глобальную переменную T,

                            // но не в C

    printf("%d", sizeof(T));

    return 0;

}

3) Типы логических результатов различаются в C и C ++. Спасибо Гаураву Джайну за предложение об этом.

   
// output = 4 в C (это размер int)

printf("%d", sizeof(1==1)); 

  
// output = 1 в c ++ (это размер логического типа данных)

cout << sizeof(1==1); 

Эта статья предоставлена Абхай Рати . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Напишите программу, которая дает разные результаты на C и C ++

0.00 (0%) 0 votes