#include /*#include"test31.c"*/ //定义阶乘函数 /* int fac(int n){ //定义寄存器存储变量 register int i ,f=1; //循环形参计数器计数阶乘表达式 for(i=0;i extern varx; int power(int n){ int i,y; for(i=0;i int main(){ int *a,b; //定义两个变量 printf("请输入a的值:\n"); scanf("%d",&b); a=&b; //对变量b取地址赋值给指针a printf("%p\n",a); a++; //对指针只想自加运算 printf("%p\n",a); } /*指针*/ int main(){ //分别定义两个变量 long i, *p; printf("请输入i的值:\n"); scanf("%ld",&i); p=&i; //以&*p和&i及*&p形式输出 printf("%l\nd%ld\n",&*p,&i); printf("%ld\n%p\n",*&p,*p); /* int *a,b; //分别定义一个指针变量和一个变量 a=&b; //把指针变量赋值给变量 printf("请输入指针:\n"); scanf("%d",&a); printf("请输入变量:\n"); //printf("指针的值是:%d\n,指向的内存地址是:%p\n",*p,j); printf("%d\n",b); */ #include /*指针数组*/ int pointArray(){ //定义数组和指针变量 int *p ,*q,x[10],y[10],i; //把数组变量的首地址赋值给指针变量 p=&x[0]; q=y; //循环遍历输入 printf("请输入x数组内的元素:\n"); for(i=1;i<5;i++){ scanf("%d",p++);/*&x[i])*/; } printf("请输入y数组内的元素:\n"); for(i=1;i<5;i++){ scanf("%d",q++); /*&y[i])*/; } //循环遍历输出 p=x; //重新对指针赋值指向首地址 q=y; printf("对数组x内元素输出:\n"); for(i=1;i<5;i++){ //对程序做优化 printf("x:%5d\n",*p++);/**(p+i))*/ } printf("对数组y内元素输出:\n"); for(i=1;i<5;i++){ printf("y:%5d\n",*q++);/*(q+i))*/ } } int main(){ pointArray(); return 0; } #include // 定义一个循环变量二维数组函数 void twoArray(){ //初始化指针和二维数组及计数器 int array[2][3],i,j ,*p; //优化 //嵌套循环对二维数组进行输入 printf("请输入数组内的元素:\n"); p=array[0]; for(i=0;i<2;i++){ for(j=0;j<3;j++){ scanf("%d",p++);/*&array[i]+j)*/ } } //对二维数组元素以指针形式输出 printf("对数组元素输出:\n"); p=array[0]; for(i=0;i<2;i++){ for(j=0;j<3;j++){ printf("%d\n",*p++);/**(array[i]+j))*/ } } } //主函数调用 int main(){ twoArray(); } #include int main(){ /*字符指针*/ //定义指针变量和字符变量 char x[20]="hello world",y[30],*p,*q; //赋数组初值给指针 p=x; q=y; //复制指针 while(*p!='\0'){ *q=*p; p++; q++; } *q='\0'; printf("q的值是:\n"); puts(x); } #include int main(){ /*字符数组*/ //定义字符组 char *x[]={ "Mon", "Tues", "Ther", "Apri", "Fri", "sun" }; //计数器 int i; //循环遍历 for(i=0;i<6;i++){ printf("%s\n",x[i]); } } #include //定义交换函数 void swap(int *a, int *b){ int temp; //定义交换变量 temp=*a; *a=*b; *b=temp; } //定义一个根据大小来判断是否交换 void changeSwap(int *q,int *p,int *j ){ //指针大小条件判断 if(*q