c语言字符数组指针的使用,c语言数组指针用法举例
和指针数组和字符串 C语言教程 C语言系列教程
第十二章指针和数组的关系,字符串一,数组和指针下面还是初学者容易出错的地方。指针加n或减n不是地址加n或减n,而是当前地址向后或向前跳n次所指向的地址。
#包含stdio.h
int main(void)
int num[]={50,25,75,100 };
int * pt
pt=num 1;//有意将第二个元素地址赋给指针变量
//显示指针变量指向的地址和指针的值。
printf(pt=%d,*pt=%d\n\n ,pt,* pt);
//指针变量减少或增加1时,引用的地址不是减少或增加1,而是增加或减少4,因为int是4个字节。
printf(pt-1=%d,*(pt-1)=%d\n ,pt-1,*(pt-1));
printf(pt=%d,*pt=%d\n ,pt,* pt);
printf(pt 1=%d,*(pt 1)=%d\n ,pt 1,*(pt 1));
//显示pt用作数组时的值。(注:[-1]仍然正确)
printf(\npt[0]=%d,pt[-1]=%d\n ,pt[0],pt[-1]);
返回0;
}二。指针数组char指针数组等价于二维字符数组,并不意味着指针数组可以直接转换成两个字符数组。相反,字符数组可以直接转换成指针数组。因为二维字符数组的地址是连续的,但是指针数组指向的元素不一定是连续的(下面m1、m2、m3的地址可以是不连续的,也可以是长度不同的)。
#包含stdio.h
int main(void)
char * m1= www . quan Xue . cn ;
char * m2= www . 51 minge . com ;
Char *m3=这里是潇雅的C语言教程;
char * message[3];// #包含stdio.h
int I;//
// int main(void)
消息[0]=m1;// {
消息[1]=m2;// char * message[]={ www . quan Xue . cn ,
消息[2]=m3;// www.51minge.com ,
// 这里是潇雅的C语言教程 };
for(I=0;I I){// for(I=0;i i ) {
printf(%s\n ,message[i])。// printf(%s\n ,message[I]);
} // }
返回0;//返回0;
}//}三。指针对指针。在第一章讨论main()函数的参数时,已经看到了指针的指针。这和指针数组的作用是一样的,但是还是有细微的区别。数组可以在定义时直接初始化,但指向指针的指针不能。就像二维数组一样,不指定第二维的长度就不能直接初始化。即char str[][]={ . , .,}
#包含stdio.h
int main(void)
char * message[]={ www . quan Xue . cn ,
www.51minge.com ,
下面是潇雅的C语言教程 };
char * * p;//指向指针的指针
int I;
p=消息;//指针的指针被赋予一个初始值
for(I=0;i i ) {
printf(%s\n ,p[I]);
返回0;
}四。指针的长度让很多初学者很遗憾C语言没有提供数组长度的函数,但是可以用sizeof()运算符先求出数组的总长度,再求出数组类型的长度,两者相除得到数组的长度。C更大的遗憾是sizeof()对指针变量求值时,结果总是4。这是因为指针变量的内容是地址,而地址总是用4个字节来表示。
所以有经验的程序员,在使用指针作为参数的时候,通常会同时多定义一个参数来存储它的长度。也就是说,指针和它的长度同时被传递。另外,如果数组长度事先已知,一般定义为常数。
#包含stdio.h
int main(void)
char *msg[]={www.quanxue.cn ,
www.51minge.com ,
下面是潇雅的C语言教程 };
double dNum[]={12.5,24.55,100.83 };
double * p=dNum
printf( dnum的大小:-,数组个数为:% d \ n ,sizeof (dnum),(int)sizeof(dnum)/sizeof(double));
Printf( p的大小:-,数组个数为:% d \ n ,sizeof (p),(int)sizeof(p)/sizeof(double));
printf( msg:-,数组个数为:% d \ n ,sizeof (msg),(int)sizeof(msg)/sizeof(char *));
返回0;
}
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。