指针类型与动态变量

    一:概念
        指针类型:指示内存地址的数据类型; 
		指针变量:存放内存地址的变量(简称"指针");
	二:指针变量的定义
	    1.格式: 
		    指针的类型 *变量名/*"*"是指针说明符*/; 
		    如:
			    int *p;
				int *a[100];
				char *s;
		2.结构体指针:
		    如:
			    struct node{
				    int data;
				    node *next;
				}*p;
	三:指针运算符(2个)
	    1.取地址(&):&后是普通变量(非双指针); 
		2.取内容(*):*表示指针所指向的变量.如*后是指针;
		程序中:
		        指针:p
				指针所取变量:*p
		结构指针的成员两种写法:
		    (1): (*p).m; 
			(2): p->m;
	四:指针的使用
	    1.指针赋值:给指针一个地址
		    如:
			    p=&a;
				p=arr;
				p=p1;
				p=NULL;
		2.指针的运算(加或减一个整数)/*是地址内存字节数的+,-*/:
			如:
			    p++;
				p--;
				p+=i;
				p-=i;
				r=p+i;
				r=p-i;
		3.两指针相减/*求出距离*/;
		4.两指针比较;
		5.*p和普通变量一样用:
		    如:
			    *p=10000;
				*p+=*p1;
				*p=n/z;
	    五:动态变量 
			当指针指向一块无名的内存空间,就形成了一个动态变量;
		    形如:*p
			生成一个指定类型的动态变量:
			    格式:变量名=new 数据类型;
				功能:生成一个指定类型的动态变量;
				如:p=new int[10]; 
				p=new node;
				如给一个动态数组存入n个元素:
				int n,*p;
				scanf("%d",&n);
				p=new int[n];
				for(int i=0;i0){
							    p=g[i];
							    g[i]=g[j];
							    g[j]=p;
							}
   				} 
   				int main(){
				    scanf("%d\n",&n);
					for(i=0;i


你可能感兴趣的:(数据结构(常用算法))