指針學習筆記


去學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