C++学习小笔记

了解指令

#include 预处理器的主要功能是在编译器进行源代码的编译过程之前,添加或者替代相应的预编译指令,从而使得用户源代码中调用的系统预定义函数和各种标识符能够正确地被编译器识别和编译,#include< iostream > 表示将 iostream 头文件添加到当前订单源代码,iostream 头文件主要包含了系统的标准输入输出函数以及数据的声明和定义

了解 using namespace std;

using 预编译器的主要功能是表明当前源代码文件使用的名称空间是 std ,名称空间是C++语言中为了解决编写大型程序时,多个厂商的独立 C++ 代码在标识符命名过程中可能会发生冲突的一个解决方案,也就是说,如果一个变量 a 在两个代码中分别表示 1 和 2 ,在进行代码整合时就会报错,不同的供应商的代码模块都拥有自己的代码模块,用户在使用这个模块时也需要明确标注自己使用的是哪一个厂商的代码模块,using 预编译指令可实现此功能,解决了上面的问题。

指针

计算机程序储存信息可以用指针实现,指针是一个变量,存储的不是某一个值,或者说它储存的值是另一个值的地址 ,要找到一个常规的变量的地址,可以在它的前面加上地址运算符 & ,看下面的例子:

在这里插入图片描述
显示地址时是用十六进制来表示,如果你已经定义了一个指针,如果在指针的前面加上 * (解除引用运算符),可以得到该指针变量对应的地址处储存的值,看下面的一个例子,我们学会怎么定义一个指针以及理解星号(与乘法符号一模一样,不用太担心,C++会根据上下文判断出是乘法还是解除引用):

#include<iostream>
using namespace std;
int main()
{
    
    
	int m=2;
	//int*n;
	//int *n;
	//int* n;
	int * n;
	n=&m;
	cout<<n<<' '<<*n<<endl;
	return 0;
}

输出:

0x6ffe04 2

其中星号前后的空格是可选择的,也就是加不加都可以,注释掉的三行都是正确的,对于声明指针,在前面加上星号,就可以使用与地址储存的值一样的类型了,实质上我们定义的还是那个值的另一种表示方法(*n),值得注意的是:一个星号只能对应一个指针,即:

int *n,h;

定义了一个指针 n 与一个整型变量 h ,要想 h 也是指针,应该:

int *n,*h;

?:

语句:

z=x<y?x:y;

含义是取 x 和 y 的较小值

空语句

例子:

if(c>1);//空语句 ;
else
	cout<<"Good"<<endl;

switch 语句

//结构
switch(<变量>)
{
    
    
	case <判断1>:
		<执行1>;
		break;//终止
	case <判断2>:
		<执行2>;
		break;
	...
	default://前面的都没有执行
		<执行n+1>;
		break;
}

一个简单例子,输入平年的月份,输出对应的天数:

//输入月份,输出月份的天数
#include <iostream>
using namespace std;
int main() {
    
    
	int month;
	cout<<"Please input the month:"; //输出提示信息
	cin>>month; //输入月份
	if (month<1 || month >12) {
    
    
		cout<<"输入错误!"<<endl;
	return 1;
	}
	switch(month) {
    
    
		case 2:
			cout<<"28天"<<endl;
			break;
		case 4: case 6: case 9: case 11://多种情况同时判断
			cout<<"30天"<<endl;
			break;
		default://31天放在最后用 default 简化代码
			cout<<"31天"<<endl;//最后可以不用 break 了
	}
	return 0;
}

不加 break ,利用 switch 的多入口解决问题:
输入年月日,输出这是这一年的第几天:

#include<iostream>
#include<cstdio>
int main()
{
    
    
	int y,m,d,e,su=0;
	while(scanf("%d%d%d",&y,&m,&d) !=EOF){
    
    
		if(y%4==0 && y&100!=0 || y%400==0)
			e=29;
		else
			e=28;
		switch(m){
    
    
			case 12:
				su+=30;
			case 11:
				su+=31;
			case 10:
				su+=30;
			case 9:
				su+=31;
			case 8:
				su+=31;
			case 7:
				su+=30;
			case 6:
				su+=31;
			case 5:
				su+=30;
			case 4:
				su+=31;
			case 3:
				su+=e;
			case 2:
				su+=31;
			case 1:
				;
		}
		su+=d;
		printf("%d\n",su);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/interestingddd/article/details/113729800