C/C++隐式类型转换导致的若干问题
生活随笔
收集整理的這篇文章主要介紹了
C/C++隐式类型转换导致的若干问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在C/C++中對兩個基本數據類型進行比較時,如果類型不匹配,要注意是否會引起嚴重問題,以下是具體例子
#include <iostream>using namespace std;void main() { #define SAMPLE_3int i;#ifdef SAMPLE_1//sample 1, Logic algorithm errorfor(i = -1; i < 0u; i++){printf("hello world\n");} #endif#ifdef SAMPLE_2//sample 2, Infinite loopfor(i = 1; i >= 0u; i--){printf("infinite loop\n");} #endif#ifdef SAMPLE_3//sample 3, Access violationunsigned char array[100] = {0};for(i = 100 - 1; i >= 0u; i--){array[i] = 1;} #endif }在上面三個例子中,因為有符號i與無符號0u進行比較,i被隱式轉換為無符號類型,導致出現了邏輯錯誤,死循環,數組越界轉載于:https://www.cnblogs.com/authorlcy/p/4175345.html
總結
以上是生活随笔為你收集整理的C/C++隐式类型转换导致的若干问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 具有重庆火锅特色店名有哪些,帮忙取?
- 下一篇: R语言学习笔记 (入门知识)