专升本C语言的指针

阅读: 评论:0

专升本C语言的指针

专升本C语言的指针

指针=&变量*指针=指针指定的变量的值 #include<stdio.h>
int main1(){int *p,a=88;  //指针 要与指向的变量 类型相同 p=&a; //使指针与变量所关联 printf("%dn",*p); //指针指定的变量的值 *p=123;//指针指定的变量的值可以参与运算影响本身的值 printf("%dn",a); //指针指定的变量的值 int *r; r=p;//指针的值也是可以说转换的;此时r也指向A printf("%d",*r); 
} 指针=&数值名[某数]
*指针= 指针指定的变量的值 
指针+i=&数值名[某数+i]int main2(){int *a,*b,c[3]={1,2,3};a=&c[0];b=&c[1];printf("%dn",*a);printf("%dn",*(a+1));printf("%dn",*(a+2));printf("%dn",*(b-1));}&数组名[某数] 相当于 数组名+某数数组名[某数] 相当于 *(数组名+某数) int main(){int i,a[3]={1,2,3},*q;q=a+1; //==  q=&a[1]printf("%dn",*q);q=a;//首地址开始 printf("%dn",*q);int b;b=*(a+2);    //  b=a[2]printf("%dn",b);printf("%dn",a[2]);}数组名[]->*p
数组名[i]->*(p+i)
数组名->q(使用前需先关联)指针变量与二维数组 指针=&数组名[数a][数b]
*指针=指针指定变量的值
指针+i=&(数组名[数a][数b]后面第i个元素)&数组名[数a][数b] 相当于 数组名[数a]+数b也相当于 数组名[0]+数a*列数+数b数组名[数a][数b]相当于 *(数组名[0]+数a*列数+数b) #include<stdio.h>
int main(){int a[3][4]={1,2,3,4,5,6,6,5,4,3,2,1};int *p;
//	p=&a[0][0];p=a[0]+0;printf("%dn",*p);p=a[0]+1*4+0;printf("%dn",*p);printf("%dn",*(a[0]+2*4+3));int i; for(i=0;i<12;i++){printf("%2d",*p++);}return 0;}指针变量与二维数组相关函数行参是指针变量 实参是数组名函数声明 数组名[][某数]->*p
函数解释 数组名[i][j]->*(p+i*列数+j) 
函数使用 数组名->*数组名 #include<stdio.h>
int main(){int a[3][4]={1,2,3,4,5,6,6,5,4,3,2,1};void fun(int *p,int n);fun(*a,12);for(int i=0;i<3;i++)for(int j=0;j<4;j++){printf("%2d",a[i][j]);}return 0;	
}
void fun(int *p,int n){for(int i=0;i<3;i++)for(int j=0;j<4;j++){printf("%2d",(*p)+1);p++;}printf("n");}行参是指针变量 实参是指针变量 函数声明 数组名[][某数]->*p
函数解释 数组名[i][j]->*(p+i*列数+j) 
函数使用 数组名->q(使用前需要关联) #include<stdio.h>
int main(){int a[3][4]={1,2,3,4,5,6,6,5,4,3,2,1};void fun(int *p,int n);int *p;p=a[0]; fun(p,12);for(int i=0;i<3;i++)for(int j=0;j<4;j++){printf("%2d",a[i][j]);}return 0;	
}
void fun(int *p,int n){for(int i=0;i<3;i++)for(int j=0;j<4;j++){printf("%2d",(*p)+1);p++;}printf("n");
} 指针变量指向二维数组的行变量 //定义 (*p)[列数]       int (*p)[4]
//关联  p=二维数组名+n         p=a+1;
//
//       等于
//*(*(p+i)+j)=二维数组名[n+i][j];
//例如 a[2][2]==*(*(p+2)+2)
//
#include<stdio.h>
int main(){int a[3][4]={{1,2,3,4},{5,6,6,5},{4,3,2,1}};int (*p)[4];p=a;int i,j;sacnf("%d%d",&i,&j);printf("%d",*(*(p+i)+j));//	for(i=0;i<4;i++){
//		printf("%dt",*(*(p+2)+i));
//	}return 0;	
}//用指向二维数组行变量的指针变量做形参
//函数声明:数组名[][某数]->(*p)[某数]
//函数解释:数组名[i][j]->*(*(p+i)+j)#include<stdio.h>
int main(){int a[3][4]={1,2,3,4,5,6,6,5,4,3,2,1};void fun(int (*p)[4],int n);fun(a,2); //关键 return 0;	
}
void fun(int (*p)[4],int n){  //关键 for(int j=0;j<4;j++){printf("%2d",*(*(p+n-1)+j)); }printf("n");}指针变量与字符串指针=&数组名[某数]
*指针=指针指定的字符
指针+i=&数组名[某数+i]
//指针变量与字符串
//指针=&数组名[某数]
//*指针=指针指定的字符
//指针+i=&数组名[某数+i]//&数组名[某数] 相当于 数组名+某数
// 数组名[某数] 相当于 *(数组名+某数)#include<stdio.h>
int main(){char a[100]={"i am shuaibi"};char b[100];char *p;p=a+0; //&a[0]==a+0int i=0;while(*p!=''){b[i++]=*p;p++;}*(b+i)='';  //b[i]==*(b+i)puts(b);return 0;}//函数声明 数组名[]->*p 
//函数解释:数组名[i]->*(p+i) 
//函数解释  数组名->q(使用前需关联) #include<stdio.h>
int main(){
//	char a[100]={"i am s88846"};char b[100];void fuzi(char *a,char *b);char *x,*y;x="hello word!";y=b+0;fuzi(x,y); puts(b);return 0;
}
void fuzi(char *a,char *b){int i=0;for(i=0;*(a+i)!='';i++){*(b+i)=*(a+i);}*(b+i)='';
}//指针变量与函数 
#include<stdio.h>
int main(){int a,b,n;scanf("%d%d%d",&a,&b,&n);int max(int a,int b);int min(int a,int b);int (*d)(int a,int b);n==1?d=max:d=min;printf("%dn",(*d)(a,b));return 0;
}
int max(int a,int b){if(a<b)a=b;return a;
}
int min(int a,int b){if(a>b){a=b;}return a;
}//返回指针函数 
#include<stdio.h>
int main(){int a[3][4]={1,2,3,4,5,6,6,5,4,3,2,1};int *fun(int (*p)[4],int n);int *p;p=fun(a,0);int i;for(i=0;i<4;i++){printf("%d",*(p+i));} return 0;	
}
int *fun(int (*p)[4],int n){  int *q;q=(p+n)[0];return (q);}!!!!!!!!!!!!!  指针=&值   p=&a[0]  -> p=a+0   -> a;q=&c[1] == q=c+1p=&a[0][0] == p=a[0]+0 = a[0]=*(a+0)=*ap=&c[1][5] == p=c[1]+5 ==  *(c+1)+5!!! 值=*指针  a[0]=*p   *a=*pc[1]=*q  *(c+1)=*pa[0][0]=*p     *a[0]=*pc[1][2] =*p    *(c[1]+2)=*p  *(*(c+1)+2)!!! &a[i]=a+i;
!!! a[i]=*(a+i) 

本文发布于:2024-01-27 20:13:21,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063576002394.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:指针   专升本   语言
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23