Computer >> Máy Tính >  >> Lập trình >> lập trình C

Viết một chương trình tạo ra các kết quả khác nhau trong C và C ++

Ở đây chúng ta sẽ thấy một số chương trình sẽ trả về các kết quả khác nhau nếu chúng được biên dịch trong trình biên dịch C hoặc C ++. Chúng tôi có thể tìm thấy nhiều chương trình như vậy, nhưng ở đây chúng tôi đang thảo luận về một số chương trình trong số đó.

Trong C và C ++, các ký tự được coi là khác nhau. Trong C, chúng được coi là int nhưng trong C ++, chúng được coi là ký tự. Vì vậy, nếu chúng ta kiểm tra kích thước bằng toán tử sizeof (), nó sẽ trả về 4 trong C và 1 trong C ++.

Đối với C.

Ví dụ

#include<stdio.h>
int main() {
   printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

Đầu ra (C)

The character: a, size(4)

Đối với C.

Ví dụ

#include<stdio.h>
int main() {
   printf("The character: %c, size(%d)", 'a', sizeof('a'));
}

Đầu ra (C ++)

The character: a, size(1)

Trong C nếu chúng ta sử dụng struct, thì chúng ta phải sử dụng thẻ struct khi chúng ta đang sử dụng nó cho đến khi một số typedef được sử dụng. Nhưng trong C ++, chúng ta không cần phải dùng thẻ struct để sử dụng cấu trúc.

Đối với C.

Ví dụ

#include<stdio.h>
struct MyStruct {
   int x;
   char y;
};
int main() {
   struct MyStruct st; //struct tag is present
   st.x = 10;
   st.y = 'd';
   printf("Struct (%d|%c)", st.x, st.y);
}

Đầu ra (C)

Struct (10|d)

Đối với C ++.

Ví dụ

#include<stdio.h>
struct MyStruct{
   int x;
   char y;
};
int main() {
   MyStruct st; //struct tag is not present
   st.x = 10;
   st.y = 'd';
   printf("Struct (%d|%c)", st.x, st.y);
}

Đầu ra (C ++)

Struct (10|d)

Kích thước của dữ liệu kiểu Boolean khác nhau trong C và C ++.

Đối với C.

Ví dụ

#include<stdio.h>
int main() {
   printf("Bool size: %d", sizeof(1 == 1));
}

Đầu ra (C)

Bool size: 4

Đối với C ++.

Ví dụ

#include<stdio.h>
int main() {
   printf("Bool size: %d", sizeof(1 == 1));
}

Đầu ra (C ++)

Bool size: 1