c++ primer 学习笔记及理解(1)

术语

clog :关联到标准错误,通常用于报告程序的执行信息,存入一个日志文件中。

方法 :成员函数的同义用语。

类 :一种定义自己的数据结构及其相关操作的机制。

类类型 :类定义的类型。类名即为类型名。

命名空间 :将库定义的名字放在一个单一位置的机制。命名空间可以避免不经意的名字冲突。

::       :作用域运算符。其用处之一是访问命名空间的名字。

c++算术类型

类型 含义 最小尺寸
bool 布尔类型 未定义
char 字符

8位

wchar_t 宽字符 16位
char16_t Unicode字符 16位
char32_t Unicode字符 32位
short 短整型 16位
int 整型 16位
long 长整型 32位
long long  长整型 64位
float 单精度浮点型 6位有效数字
double 双精度浮点型 10位有效数字
long double 扩展精度浮点型 10位有效数字
扫描二维码关注公众号,回复: 2542491 查看本文章

注释界定符不能嵌套

关于初始化

int a=0;

int a={0};

int a{0};

int a(0);

以上四种都能对a进行初始化。

long double a=3.1415926536;

int b{a},c={a};//编译错误,转换未执行,存在风险

int d{a},e=d; //编译正确,转换执行,丢失部分值。

关于extern

extern int i;//声明i,不是定义i。

关于引用(&)

int ival=1024;

int &refval=ival;//refval指向ival,是ival的另一个名字。

int &refval2;//报错,引用必须被初始化

int &dval-10;//错误,引用类型的初始化必须是一个对象。

关于const

const int i=1;//不能通过变量名改变值,const对象必须初始化。

int *const curerr=&errnumb;//curerr将一直指向errnumb。

顶层const 表示指针本身是一个常量。

底层const 表示指针所指的对象是一个常量。

关于constexpr

constexpr int mf=20;//声明为constexpr的变量一定是一个常量,而且必须用常量表达式初始化。

关于typedef

typedef double wages;//重命名wages是double的同义词。

Using SI = Sales_item;//SI是Sale_item的同义词

typedef char *pstring;

const pstring cstr=0;//cstr是指向char的常量指针

const char *cstr=0;//不等同于上句,typedef不能看作直接替代。

关于auto

auto 类型//让编译器替代我们分析表达式所属的类型

auto item =val1 +val2;//item初始化为val1和val2相加的结果类型

关于decltype

decltype//从表达式的类型推断出要定义的变量类型。

例:

const int ci=0,&cj=ci;

decltype (ci) x=0;//x的类型为const int.

decltype (cj) y=x;//y的类型为const int &,y绑定到x。

decltype(cj) z;//错误,z是一个引用必须初始化。

如果decltype 使用的表达式类型不是一个变量,则decltype返回表达式结果对应的类型。

用c++编写一些简单的常用语句

while语句

求1到10的和:

#include<iostream>
using namespace std;
int main()
{
	int sum = 0, val = 1;
	while (val<=10)
	{
		sum += val;
		++val;
	}
	cout << "1到10和为:" << sum << endl;
	while (1);
	return 0;
}

for语句

求1到10的和

#include<iostream>
using namespace std;
int main()
{
	int sum = 0;
	for (int i = 0;i <= 10;i++)
	{
		sum += i;
	}
	cout << "1到10和为:" << sum << endl;
	while (1);
	return 0;
}

if语句

统计输入中每个值连续出现了多少次

#include<iostream>
using namespace std;
int main()
{
	int currval = 0,val=0;
	if (cin >> currval)
	{
		int sum = 1;
		while (cin>>val)
		{
			if (val == currval)
			{
				++sum;
			}
			else
			{
				cout << currval << "出现了" << sum << "次" << endl;
				currval = val;
				sum = 1;
			}		
			
		}
		cout << currval << "出现了" << sum << "次" << endl;
	}
	return 0;
}

注:这题例题代码有误

如我们输入1 1 2 2 3 3 4 5

我们得到的输出为:1出现2次,2出现2次,3出现2次,4出现1次。

无法如书上所说:得到1出现2次,2出现2次,3出现2次,4出现1次,5出现1次。

若想得到上述结果需在输入内容的结尾加上0用于跳出while循环来执行while循环外的cout语句。

如:1 1 2 2 3 3 4 5 0

猜你喜欢

转载自blog.csdn.net/qq_37624987/article/details/81393370
今日推荐