2022.4.27 C++基础入门——初始化、输入和输出和const应用

1. 初始化

C中的初始化写法:

变量初始化:int a = 10 ;
数组初始化:
int arr[5] = {1, 2, 3, 4, 5} ;
int arr[ ]={1, 2, 3, 4, 5} ;
int arr[5]={ }; 不给值,默认为0//
运行结果如下:
在这里插入图片描述

C++中的初始化写法:*

变量初始化:
int a = 10 ;
int a(10) ;
int a{10} ;
运行如下:
2022.4.27 C++基础入门——初始化、输入和输出和const应用_第1张图片
数组初始化:
int arr[5] = {1, 2, 3, 4, 5} ;
int arr[5]{1, 2, 3, 4, 5} ;
int arr[ ]{1, 2, 3, 4, 5} ;
运行结果如下:
在这里插入图片描述
注意:可以看出来,在C++中无论是变量的初始化还是数组的初始化,是比C中丰富的。

2. 输入和输出

在C中输入和输出
2022.4.27 C++基础入门——初始化、输入和输出和const应用_第2张图片
在C++中输入和输出
2022.4.27 C++基础入门——初始化、输入和输出和const应用_第3张图片
可以看出,C++的输入和输出和C是完全不同的。
C++中输入和输出命令:
// cin ——输入流对象(键盘)
// cout ——输出流对象(控制台-屏幕)
// >>——提取符
// <<——插入符
// endl——换行符(相当于“\n”)

注意:以下错误使用方式
cin >> a,ch ;
cout << a,ch ;
总结:使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含头文件以及std标准命名空间。

3. const 与指针

const在C和C++中的区别

2022.4.27 C++基础入门——初始化、输入和输出和const应用_第4张图片
2022.4.27 C++基础入门——初始化、输入和输出和const应用_第5张图片
对比C和C++运行结果,可以发现,在C中,ar[n]中n以变量为主,这种方式是错误的,因为数组的长度要求是常量;反而C++中可以运行出来结果,因为C++中是将const int n中的n以常量为主,因此,ar[n]是可以执行的。

const与指针的关系

    int a = 10, b = 20;
	int* p1 = &a;//1
	int const* p2 = &a;//2

	int* const p3 = &a;//3
	const int* const p4 = &a;//4

1的指针p1是一个普通指针,指向a的地址;2的指针p2指向为常性(解引用为常性),指向不能修改;3的指针p3自身为一个常性,自身不能修改;4的指针p4指向(解引用)和指针变量自身都是一个常性,不能修改。

    const int a = 10;
	int* p1 = &a;//1
	const int* p2 = &a;//2
	int* const p3 = &a;//3
	const int* const *p4 = &a;//4
	int* p5 = (int*)&a;//5

分析:
1——左边为int * 类型,右边为const int *类型,因此1是错误的;
2——左边为const int *类型,右边为const int *类型,因此2是正确的;
3——左边为int *const 类型,右边为const int *类型,因此3是错误的;
4——左边为const int *const类型,右边为const int *类型,能力强的指针可以赋予给能力收缩的指针,因此4是正确的;
5——左边为int *类型,右边为int *类型,因此5是正确的,但是5是通过强转之后得到的int *类型,不安全。

你可能感兴趣的:(C++,程序,c++)