【C++primer】3_15学习

【类型】
无符号变量注意事项;(取模、不要混用) 字面值常量

【变量】
定义变量可以连续定义;
变量的初始化方式;
初始化与赋值之间的区别;
如果不主动初始化,会进行默认初始化,以及默认初始化会发生的错误;
问:如果变量先定义,后赋值,算作赋值还是初始化?

声明与定义的区别;

【标识符】
字母数字下划线组成、字母或者下划线开头

基于其他类型的类型:
【引用】
定义以及其定义的类型、初始化(必须)、本质、是否能改变引用对象、对应的地址
【指针】
定义以及其定义类型、是一种变量,因此函数体内不初始化不能访问、初始化、是否能改变指向、是否能指向引用、分配内存、不能指向引用
【对比】
本质(别名或者变量,分配地址);
改变引用或者指向;
不能指向引用、但是可以引用指针,原因是引用不是一个对象、指针是一个对象

【const】
初始化(必须);
/const引用:只是对引用设置了只读属性,可引用字面量或者变量,或者const修饰的变量/
/指向常量的指针:const在前/
加上了const修饰,使得变量变得像常量那样了。
/const指针:指针指向不能变/

/相互赋值/ 有只读属性的指针可以指向常量或者变量,但是不能没有const修饰的指针指向常量。

在这里插入图片描述

#include <iostream>
using namespace std;

int aa;


class A
{
    
    
public:
	int a;
protected:
private:
};

extern int ff = 3;

int result = 5;
void main01()
{
    
    
	unsigned u = 10, u2 = 42;
	cout << u2 - u << endl << u - u2 << endl;

	int i = 10, i2 = 42;
	cout << i2 - i << endl << i - i2 << endl << i - u << endl << u - i << endl;
	string Sa;
	//P38
	int sum = 0, values = 2,
		sign = 3;
	string book("012-134-234");

	//P39花括号括号初始化
	int a = 10;
	int b = {
    
     1 };
	int c{
    
     3 };
	int d(3);
	cout << a << b << c << d << endl;

	//默认初始化
	int aq;//****报错****:定义为 int a; 说重复定义变量 a;但是如果不初始化并不报错,但是使用就报错
	float bq;
	
	//cout << aq << endl << bq << endl;//****报错****:使用了未初始化的局部变量
	cout << "hello,world..." << endl;

	cout << aa << endl;//%%%%注意%%%%定义在函数体外的变量,不初始化时,默认初始化为0,使用时不报错

	//内置对象
	A Aa;
	//cout << Aa.a << endl;//****报错****:使用了未初始化的局部变量

	//2.2.1练习
	double wage;
	double salary = wage = 9999.99;//****报错****:未声明的标识符wage,需要对wage先声明
	cout << salary <<endl<< wage << endl;

	cout << Sa << endl;//字符串未初始化,是个空串,能调用,这是个对象

	//P41
	//extern int e = 3; //****报错****:不能对带有块范围的外部变量初始化
	cout << ff << endl;

	//P43
	int _ = 3;
	cout << _ << endl;//标识符以字母或下划线开头,有字母、下划线以及数字组成
	int r_or_f = 3;
	cout << r_or_f << endl;
	double Double = 3.0;
	cout << Double << endl;

	//作用域
	int r = 100, sum1 = 0;
	for (int r = 0; r != 10; r++)
	{
    
    
		sum1 += r;
	}
	cout << r << endl;
	system("pause");
}




void main()
{
    
    
	//引用:需要依附于其他的相同类型的变量
	int val = 100;
	int& val1 = val;
	cout << val1 << endl;
	cout << &val1 << endl; //地址:0135F820
	cout << &val << endl;//地址:0135F820引用与原变量之间在内存上的关系,

	//P46
	int i = 0, & r1 = i;
	double d = 0, & r2 = d;

	r2 = r1;
	i = r2;
	r1 = d;
	cout << r2 << i << r1 << endl;
	cout << "hello,world..." << endl;

	int* p;
	//cout<< *p << endl;//使用了未初始化的变量p

	//空指针
	int* p1 = nullptr;
	int* p2 = NULL;
	int* p3 = 0;
	//cout << *p1 << endl;

	//常引用
	//char* pp = "adfsa";//****报错****:初始化无法从 const char[6]类型转为char*
	const char* pp = "asdfa";
	cout << pp << endl;
	const int& y = 10;//对字面量的引用必须使用const
	cout << y << endl;
	const int yy1 = 10;
	const int* yy2 = &yy1;
	cout << *yy2 << endl;
	system("pause");
}

猜你喜欢

转载自blog.csdn.net/YJYS_ZHX/article/details/114866540