C++程序设计基础知识学习

C++程序设计基础知识学习本文详细介绍了 C 中的数据类型 包括 shortint 的取值范围和赋值规则 以及常量 变量的定义和运算符的使用

第二章

数据类型:

常见数据类型:[signed]/[unsigned] || [short]/[long] int/char, float, double

//short int型的定义
short int shortInt;

//1、定义时赋值,此时输出值为-32768
short int shortInt = 32768;
cout << shortInt;
//定义时赋值,此时输出值为32767
short int listN = -32769;
cout << listN;

//2、键盘输入值(32768),此时为32767(见图一)
short int shortInt;
cin >> shortInt;
cout << shortInt;
//键盘输入值,此时为-32768(见图二)
short int shortInt;
cin >> shortInt;
cout << shortInt;


short int 输入赋值
图一
short int 输入赋值
图二

综上可得,cin赋值和初始值的规则略有不同

signed int/char 以补码的形式存储,因此取值范围为-(2n)~2(n-1)-1。
但是double/float按IEEE754标准存储(数符、阶码和尾数)


常量:

  • 数值常量
  • 字符常量
    • 普通字符常量(使用单撇号括起来的单个字符
    • 转义字符常量(以反斜杠’\‘开头,注:’\a’是提示音,很有趣)
    • 字符串常量(用双撇号括起来的多个字符,通常会再最后自动添加一个’\0’做为字符串结束标志)
  • 符号常量,通过define定义用一个符号代表一个常量。
//'\ddd'和'\xhh'的含义为输出ASCII值为0xhh(十六进制)或ddd(八进制)代表的字符,结果见图3
cout << '-' << '\x40' << '-' << endl;
cout << '-' << '\100' << '-' << endl;
cout << '-' << '\080' << '-' << endl;
cout << '-' << '\x80' << '-' << endl;

//印证,结果见图4
char tmp;
cin >> tmp;
cout << (int)tmp;

测试输出一
图3
测试输出二
图4

!!! '\080’是什么
1、部分平台直接报错,因为八进制中没有8
2、部分平台特殊处理:'中\先和0结合,然后将’8’和’0’视为单个字符(char型),首先得到\0的ASCII码(0),再得到8的ASCII码(56即二进制0011 1000)和0的ASCII码(48即二进制0011 0000),最后依次拼接为0000 0000(\0)0011 1000(8)0011 0000(0)即11100000110000转为十进制即为14384。


变量:

  1. 命名规则:只能由字母、数字和下划线组成,且首位必须为字母或下划线。
  2. 常变量:在定义变量时加上关键字const,常变量定义后无法修改值,只能在定义时赋初值。(常变量与符号常量的区别:符号常量为用一个符号代表常量,符号常量没有类型,预编译时直接用常量代替符号;常变量有类型,有存储空间)


运算符:

常用运算符:

  1. 算术运算符:+、-、*、/、%、++、–
  2. 关系运算符:>、<、>=、<=、==、!=
  3. 逻辑运算符:&&、|| 、!
  4. 位运算符:<<(按位左移)、>>(按位右移)、&(按位与)、|(按位或)、^(按位异或)、~(按位取反)
  5. 三目运算符:A?B;C(A为真时执行B,否则执行C)


算数运算符于表达式:

基本算术运算符:

  1. float型数据运算时会转化为double型
  2. int型运算时有时采用“向零取整”,有时采用“向下取整”
int i = -5/3;

//向零取整
i = -1;

//向下取整
i = -2;

运算符之间的优先等级:(优先级越低优先度越高,仅列出部分运算符)

优先级 运算符 结合方向
2 () [] -> . ++(后置时) --(后置时) 自左向右
3 ++(前置时) --(前置时) ! -(做符号时) +(做符号时) *(指针) &(取址) (类型)(类型转换) sizeof new delete 自右向左
4 * / % 自左向右
5 + - 自左向右
6 <<(左位移运算) >>(右位移运算) 自左向右
7 < <= >= > 自左向右
8 == != 自左向右

混合数据类型运算时数据类型的处理:有符号转无符号,short转long,char转int,int转double,float转double(float参与运算时自动转double)
例:

int i;
char c;
float f;
double d;

//省略赋值细节
...

10 + 'a' + i * f - d
//先计算10 + 'a' 此时将char型字符'a'转为int型整数
//再计算i * f,由于int型和float型混合运算,float型运算时转为double型,因此结果为double型
//综上为:int + char + int * float(double) - double = double

//下列两式之间等价
x % = y + 8;
x = x % (y + 8);

//下式最后a的值为60
a = 3 * 5 , a * 4
编程小号
上一篇 2025-01-08 15:21
下一篇 2025-01-08 15:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/105365.html