青少年编程知识记录 codecoming

指针(二):指针与数组

1.指针与数组的关系

    指向数组的指针变量称为数组指针变量。“数组是内存上一块连续的空间”。数组名就是这块连续空间的首地址。



2.指针指向数组



    一开始的数组定义与输出:

#include<iostream>  #include<cstdio>  using namespace std;  int main(){  	int a[10];  	for(int i=0;i<5;i++){  		cin>>a[i];  	}  	for(int i=0;i<5;i++){  		cout<<a[i]<<" ";  	}  	return 0;  }

指针操作也可以输入数据:

#include<iostream>  #include<cstdio>  using namespace std;  int main(){  	int a[10];  	for(int i=0;i<5;i++){  		scanf("%d",a+i); //本来写成scanf("%d",&a[i]);   	}  	for(int i=0;i<5;i++){  		printf("%d ", *(a+i));  //  	}  	return 0;  }

上面这个操作,本来scanf("%d",&a)写法,其中&是取地址符,a是数组名,本来就表示数组空间的首地址,所以可以直接用。注意,这个地方不能用cin。

数组指向指针操作:

我们可以定义指针变量,让它来指向数组名。

#include<iostream>  #include<cstdio>  using namespace std;  int main(){  	int a[10];  	int *p=a;    	for(int i=0;i<5;i++){  		scanf("%d",p+i); //本来写成scanf("%d",&a[i]);   	}  	for(int i=0;i<5;i++){  		printf("%d ", *(p+i));   	}  	return 0;  }

2.指针的加减

指针也是变量,可以加减。

#include<iostream>  #include<cstdio>  using namespace std;  int main(){  	int a[10]={1,2,3,4,5};  	int *pa=a;    	cout<<a[0]<<endl; //结果是1   	cout<<pa<<endl;   //0x70fdf0  	cout<<*pa<<endl;  //结果是1  	  	pa++;  	cout<<pa<<endl; //0x70fdf4  	cout<<*pa<<endl;  //2  	  	pa=pa+2;  	cout<<pa<<endl; //0x70fdfc  	cout<<*pa<<endl;  //4  	  	pa--;  	cout<<pa<<endl; //0x70fdf8  	cout<<*pa<<endl;  //3   	return 0;  }
作者:亿万年的星光 分类:C++知识 浏览:

指针(一):基础用法

1.定义什么是指针,简单来说:“指针就是地址”。2.指针变量的定义指针变量定义形式:  类型说明符  *变量名其中,*号表示指针变量。变量名即为定义的指针变量名,类型说明符表示该指针变量所指向的变量的数据类型。普通变量:int a=5;解释:定义了变量a,是int型的,值为5。内存中有一块内存空间是放a的值。对a的存取操作就是直接到这个内存空间存取。内存空间的位置叫地址,存放5的地址可以用取地址操作。用“&”符号运算得到。即&a;指针变量:int *p=NUL
作者:亿万年的星光 分类:C++知识 浏览:

判断闰年

代码参考:#include<iostream>  using namespace std; //判断闰年的函数  int leap(int year){ if((year%4!=0)||(year%100==0&&year%400!=0)) return 0;  //0表示是平年 else return 1; //1表示是闰年 }

标签: 闰年

作者:亿万年的星光 分类:C++知识 浏览:

2021 年青岛市程序设计竞赛试题(小学组)决赛

1.方程求解



【描述】

输入正整数 a,b,c。

求有多少组 x 和 y 满足 a*x+b*y=c 。x 和 y 都是非负整数。

【输入】

一行,包含三个正整数 a,b,c,两个整数之间用单个空格隔开。

【输出】

满足 a*x+b*y=c 的 x 和 y 的组数。

【输入样例】

2 3 18

【输出样例】

4

【样例说明】

有以下 4 组 x 和 y 满足 2*x+3*y=18:

x=0,y= 6

x=3,y= 4

x=6 ,y=2

x=9,y= 0

【数据范围】

50%的数据,1<=a,b,c<=1000;

100%的数据,1<=a,b,c<=100000。

作者:亿万年的星光 分类:C++知识 浏览:

求阶乘的方法

1.普通求法#include<iostream> using namespace std; int main(){ int sum=1; int n; cin>>n; for(int i=1;i<=n;i++){ sum=sum*i; }  cout<<sum; return 0; }2.递归法#include<iostream&
作者:亿万年的星光 分类:C++知识 浏览:

DEVC++中的断点调试

1.调试程序的两种方法编程的时候经常会遇到自己的输出结果跟标准结果或者预期的结果不一样,这个时候就要用到调试程序的功能。调试程序的目的有两个,一个是找出程序中的错误,另一个是监视变量的变化。2.DEVC++中的调试程序方法在DEVC++中,我们使用“断点”调。”断点“的主要意思是在调试模式下,遇到”断点“就停住,查看断点以前所有的变量的变化关系。3.设置及取消断点的方法#include<iostream> using namespace std; int&nb
作者:亿万年的星光 分类:C++知识 浏览:

进制转换类问题汇总

二进制转十进制十进制转二进制十进制转M进制(M一般小于16)M进制转十进制M进制和N进制互转
作者:亿万年的星光 分类:C++知识 浏览:

DEVC++中的快捷键

快捷键可以帮我们加快速度,下面介绍一下我们经常用的快捷键。 Ctrl+A   全选Ctrl +C   复制Ctrl +V   粘贴Ctrl+Z    撤销F9          编译F10        运行F11        编译运行Ctrl+/    单
作者:亿万年的星光 分类:C++知识 浏览:

C++整型的数据范围

数据类型标识符占字节数数值范围数值范围短整型short [int]2(16位)-32768~32767-2^15 到2^15  -1整型[long] int4(32位)-2147483648~2147483647-2^31到2^31  -1长整型long [int]4(32位)-2147483648~2147483647-2^31到2^31  -1超长整型long long [int]8(64位)-9223372036854775808~9223
作者:亿万年的星光 分类:C++知识 浏览:

取模运算总结——数论

  • 编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果。

  • 例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取模,b取模,再求和,输出的结果相同。



  • a mod b表示a除以b的余数。有下面的公式:

    • (a + b) % p = (a%p + b%p) %p

    • (a - b) % p = ((a%p - b%p) + p) %p

    • (a * b) % p = (a%p)*(b%p) %p



作者:亿万年的星光 分类:C++知识 浏览: