读书人

指针与数组

发布时间: 2013-04-02 12:35:26 作者: rapoo

指针与数组,

指针与数组:
指针与一维数组
?定义
?int a[6]={1,2,3,4,5,6},*p;
?p=a;或p=&a[0];?//使指针p指向a[0]
?引用:
?*a=a[0]=1;*(a+3)=a[4]=4;? //指针引用第一个和第四个值
?
?一维数组做参数
?求数组元素的和
?#include<stdio.h>
?int sum(int *b,int n){
??int m=0,*p;
??for(p=b;p<b+6;p++)
???m+=*p;
??return m;
?}
?int main(){
??int a[6],s,i;
??printf("please input data:\n");
??for(i=0;i<6;i++)
???scanf("%d",&a[i]);
??s=sum(a,6);
??printf("s=%d\n",s);
?}
?
指针和二维数组
?定义
?元素指针
??每个元素的地址即为元素指针
??a[i][j]元素指针可用&a[i][j]或用a[i]+j表示。
??a[0]指向a[0][0],a[0]+1指向a[0][1]
?行指针
??数组中每一行的地址即为行指针。行指针指向的是整个一行。
??数组名+1,即a+1指向数组元素的第二行
??int (*p)[4]??//表示p是行指针变量,其行长度为4个int型元素
??int a[3][4],(*p)[4];
??p=a;
??用行指针p表示数组元素a[i][j]地址的三种形式:&p[i][j],*(p+i)+j,p[i]+j。也可以用数组名&a[i][j],*(p+i)+j,a[i]+j
??
字符串和指针
?定义:
?char *s="Hello.EveryOne";
?或 char *s;s="hello,everyone";
?字符串以\0结束*a!='\0'来判断字符串是否结束
?strcpy(s1,s2);//字符串拷贝函数。
?strcmp(s1,s2);//比较字符串大小
?strlen(s);//返回字符串长度,不计\0
?strcat(s1,s2);//字符串连接函数

读书人网 >编程

热点推荐