指针(二):指针与数组
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; }指针(一):基础用法
【python】如何利用python生成二维码
【题解】母牛的故事
【题目描述】
有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?
【输入描述】
输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。
【输出描述】
对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行
【样例输入】
2 4 5 0
【样例输出】
2 4 6
C++报错:[Error] ld returned 1 exit status
C++常见报错及解决办法
【python】常见内置函数及用法汇总
判断闰年
【题解】阶乘的末尾
【题目描述】
n的阶乘定义为n!=1*2*3*……*n 如3!=6 n!通常最后会有很多0,如5!=120 最后有一个0,现在统计n!去除末尾的0后,最后k位是多少
【输入描述】
第一行包括两个数n,k
【输出描述】
如果n!不止k位,则输出最后k位,如果不足k位,则高位补零,补足k位后输出 注意!这里与阶乘统计1有区别!
【样例输入】
7 2
【样例输出】
04