C++学习笔记——语法2

一、变量的命名

1. 命名规范

        (1)只能包含数字、字母和下划线;

        (2)不能以数字开头;

        (3)不能和关键字同名。

2. 良好的命名风格

        (1)下划线风格:int   student_age;  (一般用于变量名、函数名)

        (2)小驼峰风格:int   studentAge;  (一般用于变量名、函数名)

        (3)大驼峰风格:class  StudentAge;  (一般用于“类名”)

        (4)全部大写 (一般用于宏):#define  MAX_AGE  30 

二、变量的数据类型

1.整数类型

名称占字节数表示范围
int(整型)4- (2的31次方)  ~  2的31次方-1
long(长整形)

32位——4

64位——8

- (2的63次方)  ~  2的63次方-1
long  long(长长整型)8- (2的63次方)  ~  2的63次方-1
short(短整型)2- (2的15次方)  ~  2的15次方-1

        以上数据类型都是有符号的(有正负),要定义非零整数,在前面加“unsigned”,如“unsigned int”,最小值都是0, 最大值是对应的有符号数的2倍。unsigned int可以简写为unsigned。注意:unsigned数不能表示负数!如果强行用unsigned数表示负数,实际存储的是这个负数对应的“补码”,即:该负数 + “模值”。

2.单字符类型

        单个字符常量,要求用‘’括起来

        ‘0’  ‘1’  ‘2’ ...... ‘9’;  ‘a’ ‘b’  ‘c’ ...... ‘z’;  ‘A’  ‘B’  ‘C’ ...... ‘Z’;  ‘,’   ‘-’   ‘!’  ‘#’   .......

        字符类型char,占一个字节。字符在内存中用ASCII码值来储存,如以下两种方式等效。

char  name  = 'a';
char  name  = 97; //a的ASCII码值为97

        char类型还可以用来表示小范围的整数(-128 ~ 127),可节省内存。不过现在开发时,小范围的整数,也常常直接用int类型。

int x = 0;
x = 'a' + 1;  // x = 97 + 1 = 98

3.浮点数类型

        (1)单精度浮点型 float    

        用来存储带小数部分的数据,占4个字节,精度:最长7位有效数字(10进制位)。

        float类型的存储方式:

        

        符号位:0代表正数,1代表负数;阶码: 指数部分+127;尾数:类似于底数。

        (2)双精度浮点型 double

        占8个字节,精度:最长16位有效数字(10进制位)。

        浮点类型的常量:        

        带小数的常量默认都是double类型,如:3.14  是double类型,3.14f  强制指定是float类型。也可用“科学计数法”表示浮点类型的常量,如1.75E5 或 1.75 e5。

        注意:1 是int类型的常量,1.0 则是double类型的常量。

       (3)浮点数据的输出控制:

#include<iostream>
#include<Windows.h>

using namespace std;

int main(void){
    double val = 12.3456789;
    cout<<val<<endl;  //输出为12.3457,cout默认精度为6(6位有效数字)

    cout.precision(4); //指定精度
    cout<<val<<endl;  //输出为12.35 (修改持续有效,直到精度再次被修改)

    cout.flags(cout.fixed) //定点法,将浮点数精度固定为小数点后4位
    cout<<val<<endl;  //输出为12.3457
    cout<<3.1415926<<endl;  // 输出为3.1416

    cout.unsetf(cout.fixed);  // 取消定点法,恢复4位精度
	cout  << value << endl;         //输出12.35
	cout << 3.1415926535 << endl;   //输出3.142
    
    return;
}

 三、两种不同的的常量

1.字面常量

        顾名思义,字面常量看起来就是一个常量(不用定义数据类型和变量名),且能看出其数据类型。

数据类型字面常量示例备注
int1, 2, 3, 100

long

200L后面加个L或小写l(注意:vs编译默认都是win32平台,所以即使在64位系统中,long也只有4个字节)
long long100000000000LL后面加2个L或小写l
char’a’, ‘b’, ‘X’, ‘-’
float3.14f后面用“f”修饰
double3.0   3.14
16进制常量0x11(=10进制17)以0x作为前缀
8进制常量011(=10进制9)以0作为前缀

        字面常量的缺点:程序的可读性变差,代码的可维护性差。

2.符号常量

(1)#define宏定义的符号常量

#define MAX_AGE 35

        在编译的预处理阶段,直接把MAX_AGE替换为35。

(2)const修饰的符号常量

const int maxAge = 35;
maxAge = 30; //错误!编译失败

        注意:const修饰的符号常量,又叫“只读变量”,本质上还是一个变量,只是被const限制,所以无法修改。

四、字符串

        字符串就是由0个或多个字符组成的有序数列。

        字符串长度是字符串包含的字符个数(非中文),空字符串长度为0,空字符串常量为“”。注意:一个空格“ ”是空格字符串常量,长度是1。

字符串常量:

“字面型”字符串常量,要求用“”扩起来。

printf("name=%s", "Dodge");  //C语言方式输出字符串,%s用来匹配字符串
cout << “Dodge”;   //C++方式输出字符串

C和C++字符串对比:

(1)字符串变量的表示

C语言中,没有专用的字符串类型,用char类型的数组储存字符串变量

C++中,使用std::string类型表示字符串变量

(2)结束符

在C语言中,字符串后面会存储一个结束符“0”,但C++中没有。

#include <iostream>
#include <string>

using namespace std;

int main(void) {
    string gf1;  //定义一个字符串变量,此时该字符串是空字符串
    gf1 = "王菲";  //把字符串常量"王菲"拷贝到gf1
    cout << "gf1=" << gf1 << endl;

    string gf2;
    gf2 = gf1;  //把字符串变量gf1的值拷贝到gf2
    cout << "gf2=" << gf2 << endl;

    string gf3("Taylor");  //定义gf3的时候,使用字符串常量“Tarloy”来初始化
    cout << "gf3=" << gf3 << endl;

    string gf4(gf3);  //定义gf4的时候,使用字符串变量来初始化
    cout << "gf4=" << gf4 << endl;

    string gf5(10, 'A');  //注意为单引号'',此方式不常用
        cout << "gf5=" << gf5 << endl;

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值