去學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♪(・ω・)ノ