指针学习笔记


去学AC自动机,发现网上巨佬们都用指针写的。

蒟蒻看不懂只好先去学了指针。

下面   5  4 个代码是对指针的简单阐述(望大佬勿喷)

另:不定期更新(~ ̄▽ ̄)~

指针的学习1:声明与调用:

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
	int *p;//声明int型指针变量p 
	int a=5;//定义变量a初始值为5 
	printf("%d\n",a);
	p=&a;//指针p指向a的地址 
	*p=10;//将p指向的地址对应的值修改为10 
	printf("%d\n",a);
	return 0;
}

 

指针的学习2:二级指针

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
	int a=5;//定义变量a初始值为5 
	int *p;//声明一级指针变量p 
	int **q;//声明二级指针变量q 
	p=&a;//p指向a的地址 
	q=&p;//q指向p的地址 
	**q=1;//二级指针间接指向变量a,直接修改 
	cout<<a<<endl;
	return 0;
}

 

指针的学习3:指针的运用(函数的多个返回值)

#include<iostream>
#include<cstring>
#include<cstdio>
int Sum_Minus(int n1,int n2,int *n3)
{
   *n3=n1-n2;//指针n3指向的变量记录差 
   return n1+n2;//函数本身返回值为和 
}
int main()
{
   int a=3;//定义变量a初始值为3 
   int b=2;//定义变量b初始值为2 
   int s;//定义变量记录和 
   int m;//记录差 
   s=Sum_Minus(a,b,&m);//指针n3指向m的地址 
   printf("sum=%d,minus=%d\n",s,m);
   return 0; 
}

 

指针的学习4:丧心病狂的高级指针

 

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
	int a=1;
	int *p1=&a;
	int **p2=&p1;
	int ***p3=&p2;
	int ****p4=&p3;
	int *****p5=&p4;
	int ******p6=&p5;
	int *******p7=&p6;
	int ********p8=&p7;
	********p8=520;
	cout<<a<<endl;
	return 0;
}

 

指针的学习5:结构体中指针的调用

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
struct node{
	int u,v,w;
}a={1,2,3},*p;
int main()
{
	p=&a;
	p->u=520;//其实按zzyy大神所说,
	//结构体指针中的“->”就相当于普通结构体中的“.” 
	cout<<a.u<<endl;
	return 0;
}

 

指针的学习6:指针直接申请空间

 

#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
using namespace std;
int main()
{
	int *a=new int();//指针直接申请空间的操作 
	*a=1;//引用指针改变地址中所存的变量 
	cout<<*a<<endl;//同上 
}

 

 

 

Thanks♪(・ω・)ノ


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM