当前位置: 首页 > news >正文

杭州市建设银行网站搭建门户网站

杭州市建设银行网站,搭建门户网站,免费空间网,宁波网站建设果核除了创建整型数组一样#xff0c;也可以声明指针数组。 int *api[10];为了弄清这个复杂的声明#xff0c;我们假定它是一个表达式#xff0c;并对它进行求值。下标引用的优先级高于间接访问#xff0c;所以在这个表达式中#xff0c;首先执行下标引用。因此#xff0c;a…除了创建整型数组一样也可以声明指针数组。 int *api[10];为了弄清这个复杂的声明我们假定它是一个表达式并对它进行求值。下标引用的优先级高于间接访问所以在这个表达式中首先执行下标引用。因此api是某种类型的数组它包含的元素个数为10。在取得一个数组元素之后随即执行的是间接访问操作。这个表达式不再有其他操作符所以它的结果是一个整型值。 那么api到底是什么东西对数组的某个元素执行间接访问操作后我们得到一个整型值所以api肯定是个数组它的元素类型是指向整型的指针。 举一个使用指针数组的例子 char const *keyword[]{do,for,if,register,return,switch,while }; #define N_KEYWORD \ (sizeof(keyword)/sizeof(keyword[0]))注意sizeof的用途它用于对数组中的元素进行自动计数。sizeof(keyword)的结果是整个数组所占用的字节数而sizeof(keyword[0])的结果则是数组每个元素所占用的字节数。这两个值相除结果就是数组元素的个数。 这个数组可以用于一个计算C源文件中关键字个数的程序中。输入的每个单词将与列表中的字符串进行比较所有的匹配都将被计数。程序8.2遍历整个关键字列表查找是否存在与参数字符串相同的匹配。当它找到一个匹配时函数就返回这个匹配在列表中的偏移量。调用程序必须 知道0代表do1代表for等此外它还必须知道返回值如果是-1表示没有关键字匹配。这个信息很可能是通过头文件所定义的符号获得的。 keyword.c 关键字查找 /* ** 判断参数是否与一个关键字列表中的任何单词匹配并返回匹配的索引值。如果未** 找到匹配函数返回-1。 */ #include string.h int lookup_keyword( char const * const desired_word, char const *keyword_table[], int const size ) { char const **kwp; /* ** 对于表中的每个单词 ... */ for( kwp keyword_table; kwp keyword_table size; kwp ) /* ** 如果这个单词与我们所查找的单词匹配返回它在表中的位置。 */ if( strcmp( desired_word, *kwp ) 0 ) return kwp - keyword_table; /* ** 没有找到。 */ return -1; }书里没有把怎么使用的代码给出来这里测试了一下在这里写出 #include string.h #include stdio.h char const *keyword[] {do,for,if,register,return,switch,while}; #define N_KEYWORD \(sizeof(keyword) / sizeof(keyword[0])) int lookup_keyword(char const *const desired_word,char const *keyword_table[], int const size) {char const **kwp;/*** 对于表中的每个单词 ...*/for (kwp keyword_table; kwp keyword_table size; kwp)/*** 如果这个单词与我们所查找的单词匹配返回它在表中的位置。*/if (strcmp(desired_word, *kwp) 0)return kwp - keyword_table;/*** 没有找到。*/return -1; }int main() {int a lookup_keyword(while, keyword, N_KEYWORD );printf(%d, a); }也可以把关键字存储在一个矩阵中如下所示 char const keyword[][9] {do,forif,register,return,switch,while };这个声明和前面那个声明的区别在什么地方呢第2个声明创建了一个矩阵它每一行的长度刚好可以容纳最长的关键字包括作为终止符的NUL字节。这个矩阵的样子如下所示 第1个声明创建了一个指针数组每个指针元素都初始化为指向各个不同的字符串常量如下所示 注意这两种方法在占用内存空间方面的区别。矩阵看上去效率低一些因为它的每一行的长度都被固定为刚好能容纳最长的关键字。但是它不需要任何指针。另一方面指针数组本身也要占用空间但是每个字符串常量占据的内存空间只是它本身的长度。 如果我们需要对之前的程序进行修改改用矩阵代替指针数组我们应该怎么做呢答案可能会令你吃惊我们只需要对列表形参和局部变量的声明进行修改就可以了具体的代码无需变动。由于数组名的值是一个指针所以无论传递给函数的是指针还是数组名函数都能运行。书里忽略了具体的代码这里写一下 #include string.h #include stdio.h char const keyword[][9] {do,for,if,register,return,switch,while}; int lookup_keyword(char const *const desired_word,char const (*keyword_table)[9], int const size)//列表第二个形参发生改变 {char const(*kwp)[9];//这里发生了改变/*** 对于表中的每个单词 ...*/for (kwp keyword_table; kwp keyword_table size; kwp)/*** 如果这个单词与我们所查找的单词匹配返回它在表中的位置。*/if (strcmp(desired_word, *kwp) 0)return kwp - keyword_table;/*** 没有找到。*/return -1; }int main() {int a lookup_keyword(while, keyword, 7);//size等于7总共是7行printf(%d, a); }实际上除了非常巨大的表这些差别非常之小所以根本不重要。人们时常选择指针数组方案但略微对其作些改变 char const *keyword[] {do,for,if,register,return,switch,while,NULL };这里我们在表的末尾增加了一个NULL指针。这个NULL指针使函数在搜索这个表时能够检测到表的结束而无需预先知道表的长度如下所示 for( kwp keyword_table; *kwp ! NULL; kwp )参考 《C和指针》
http://www.zqtcl.cn/news/523951/

相关文章:

  • wordpress建站方便吗wordpress加入海报功能
  • 网站名称注册保护2018wordpress主题
  • 类似享设计的网站企业信息系统公示
  • 如何学习网站开发酒店网站源码
  • 怎么用nas做网站服务器WordPress云虚拟空间
  • 网站设计 ipad企业品牌推广宣传方案
  • 织梦网站怎么更换模板济南建设厅网站
  • 用wordpress仿站专业做俄语网站建设司
  • 做暧暧网站网站开发 思维导图
  • asp.net做登录注册网站苏醒的wordpress主题怎么样
  • 正能量不良网站推荐2020网站建设单位是什么
  • 固镇网站建设郑州网站seo顾问
  • 新建定制网站费用公司网站手机端和电脑端
  • 网站域名注册地址苏州建设培训中心网站
  • 高端娱乐网站建设沈阳seo专业培训
  • 做播放器电影网站需要多少钱6广州seo公司推荐
  • 笔记本可以做网站吗怎样查看网站是否备案
  • 千灯做网站网站静态和伪静态意思
  • 做境外碎片化旅游的网站wordpress wdcp
  • 整容医院网络建设公司seo实战技术培训
  • 免费服务器建立网站郑州seo线上推广系统
  • 医院网站建设的目的qq小程序源码
  • 郑州seo网站排名优化公司建站行业发展
  • 彭山住房和城乡建设局网站儒枫网网站建设
  • wap asp网站模板下载中企动力骗子公司
  • 中文电商网站模板洛阳网络公司排名
  • 国外毕业设计网站青岛seo服务
  • 自己做的网站怎么发布视频教程廊坊网站排名优化公司哪家好
  • 域名服务器都有了怎么做网站网站开发获取用户微信号登录
  • 淮南建设公司网站企业系统工程