c语言字符数组指针的使用,c语言数组指针用法举例

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: