C/C++基础问题整理
这篇文章中记录本人对一些C/C++基础概念的理解,主要包括以下几个方面内容:
1、类型转换
1、类型转换
在C和C++的一个表达式中往往会包含几种不同的数据类型,要让这些数据类型之间可以进行运算,必须让他们之中的一些或全部进行类型转换,这种转换有两种形式,一种是编译器自动进行的,叫隐式类型转换,另一种是编程中强制执行的,叫强制类型转换。
1.1、隐式类型转换
1.1.1、例子
首先由两个例子来引出问题,分析下面两个例子的输出:
例一:
#include <stdio.h>
int main(int argc, char *argv[])
{
signed int a = -8;
unsigned int b = 4;
printf("%d\n", (a+b)/2);
return 0;
}
例二:
#include <stdio.h>
int main(int argc, char *argv[])
{
signed short a = -8;
unsigned short b = 4;
printf("%d\n", (a+b)/2);
return 0;
}
1.1.2、何时发生转换
1、在混合类型的表达式中,操作数要转换成相同类型。
2、用作条件的表达式需要转换成bool型。如if()、while()等。
3、初始化或赋值操作。
1.1.3、各种转换方式
1、算术转换:
算术转换最简单的是整形提升,对比int小的整数类型的操作数,如char,signed char, unsigned char, short, unsigned short,如果int能容纳下他们,这些数都转换为int进行运算,如果int不能容纳就转换为unsigned int,当int和unsigned int一起运算时,转换为unsigned int进行。当有其它数据类型的操作时,必须遵循一个原则就是在不丢失精度的前提下,用尽量少的位数表示。
2、指针转换:
3、与bool型有关的转换
4、与枚举有关的转换
5、与const有关的转换
6、由标准库类型定义的转换
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
c/C++文件操作
软件开发 2009-03-12 16:22 阅读18 评论0
字号: 大大 中中 小小
基于C的文件操作
在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之。
一、流式文件操作
这种方式的文件操作有一个 ......
今天第一次试着在Linux下写C程序,把遇到的问题记录一下
1. 使用emacs命令编辑程序文件,我直接在Terminal里输入了emacs,写好程序,关闭,结果和windows里不一样,并没有任何SaveFileDialog之类的对话框弹出来,自己写的东西也不知道保存到哪里了,而且File菜单里也没有New这样的选项。后来才知道,原来是得在emacs命令后 ......
一、XML只有一个Table的情况
(1)userInfo.xml
<?xml version="1.0" encoding="utf-8" ?>
<UserInfo ......