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

深圳做app网站公司给企业做网站的公司

深圳做app网站公司,给企业做网站的公司,重庆公司联系方式,东营今天的消息前言 本篇仅仅是为了更加了解sizeof操作符和strlen函数练习. 对于多条sizeof操作符和strlen函数出现,可能很容易造成头脑不清晰,做题时容易混乱. 目录前言一维数组字符数组情况1:情况2情况3二维数组练习之前请牢记下面这段话.这将是头脑清晰地关键. 提示: sizeof(数组名)#…前言 本篇仅仅是为了更加了解sizeof操作符和strlen函数练习. 对于多条sizeof操作符和strlen函数出现,可能很容易造成头脑不清晰,做题时容易混乱. 目录前言一维数组字符数组情况1:情况2情况3二维数组练习之前请牢记下面这段话.这将是头脑清晰地关键. 提示: sizeof(数组名)这里的数组名表示整个数组计算的是整个数组的大小。数组名这里的数组名表示整个数组取出的是整个数组的地址。除此之外所有的数组名都表示首元素的地址。 sizeof只关心()里面的类型,并不关心里面放的是什么,这点希望做题目时可以牢记. strlen()括号里面的是地址,它只会通过访问括号里面的地址,往后一直寻找’\0’,直到’\0’才会停止. 一维数组 #include stdio.h int main() {int a[] { 1,2,3,4 };printf(%d\n, sizeof(a)); //1printf(%d\n, sizeof(a 0)); //2printf(%d\n, sizeof(*a)); //3printf(%d\n, sizeof(a 1)); //4printf(%d\n, sizeof(a[1])); //5printf(%d\n, sizeof(a)); //6printf(%d\n, sizeof(*a)); //7printf(%d\n, sizeof(a 1)); //8printf(%d\n, sizeof(a[0])); //9printf(%d\n, sizeof(a[0] 1)); //10return 0; }运行结果: 1 - 16 2 - 8 3 - 4 4 - 8 5 - 4 6 - 8 7 - 16 8 - 8 9 - 8 10 - 8 详细分析答案: 1. 16字节: 数组名a单独出现在sizeof()的括号中表示计算整个数组的大小,即4*416字节 2. 4/8字节: a数组名不是单独出现,0表示首地址表示表示首元素地址,地址的大小4/8字节 3. 4字节: (*a)解引用得到的是数组首元素数组首元素是1,类型为整形,整形大小是4字节. 4. 4/8字节: a1表示数组第二个元素的地址.地址大小4/8字节. 5. 4字节: a[1]表示数组的第二个元素,元素2的类型是整形,整形的大小是4字节. 6. 4/8字节: a表示是整个数组的地址,类型为int(*)[4].但是数组的地址也是地址,地址就是4/8字节. 7. 16字节 *a表示对a解引用,得到的是整个数组的地址.也可以理解为*和符号是可以抵消的,即等价于sizeof(a);结果为4*416字节 8. 4/8个字节: a1表示指向数组最后一个元素的后面.因为a的类型是int(*)[4],1会跳过四个整形. 地址的大小就是4/8个字节. 9. 4/8字节: a[0]表示首元素的地址,地址大小为4/8字节. 10. 4/8字节: (a[0] 1表示第二个元素的地址.4/8字节.字符数组 情况1: 字符数组: char arr[] { ‘a’,‘b’,‘c’,‘d’,‘e’,‘f’ }; #include stdio.h #include string.h int main() {char arr[] { a,b,c,d,e,f };printf(%d\n, sizeof(arr)); //1printf(%d\n, sizeof(arr 0)); //2printf(%d\n, sizeof(*arr)); //3printf(%d\n, sizeof(arr[1])); //4printf(%d\n, sizeof(arr)); //5printf(%d\n, sizeof(arr 1)); //6printf(%d\n, sizeof(arr[0] 1)); //7printf(%d\n, strlen(arr)); //8printf(%d\n, strlen(arr 0)); //9printf(%d\n, strlen(*arr)); //10printf(%d\n, strlen(arr[1])); //11printf(%d\n, strlen(arr)); //12printf(%d\n, strlen(arr 1)); //13printf(%d\n, strlen(arr[0] 1)); //14return 0; } 答案分析: 1. 6字节: 表示整个数组的地址,1*66个字节 2. 4/8字节 : 首元素地址是4/8个字节. 3. 1字节: *arr表示首元素是一个字符型,1个字节. 4. 1字节: arr[1]表示数组的第二个元素,大小为1个字节. 5. 4/8个字节: arr表示整个数组的地址,占4/8个字节. 6. 4/8个字节: arr1表示数组最后一个元素的后一个位置的地址.4/8个字节 7. 4/8个字节: 表示第二个元素的地址.4/8个字节strlen函数从参数处开始,遇到’\0’才会停止. 8.随机值.: 由于该数组没有’\0’,所以会向后一直找直到碰到\0, 9.随机值: arr0同样表示从数组的第一个元素,从第一个元素往后找,与上面一个道理. 10.报错: strlen()括号里面是地址,所以会访问地址名为a的地址,a的ASCII码值是’97’,访问地址’97’,系统会报错 11.报错: 同理,访问数组第二个元素,地址名b的地址,系统报错 12.随机值: arr取出的是整个数组的地址,地址还是从数组首地址开始往后找\0. 13.随机值: arr的类型是char(*)[6],1会跳过这个数组从数组后面开始找\0. 14.随机值: 从数组的第二个元素开始找\0.情况2 字符数组: char arr[] “abcdef”; #include stdio.h #include string.h int main() {char arr[] abcdef;printf(%d\n, sizeof(arr)); //1printf(%d\n, sizeof(arr 0)); //2printf(%d\n, sizeof(*arr)); //3printf(%d\n, sizeof(arr[1])); //4printf(%d\n, sizeof(arr)); //5printf(%d\n, sizeof(arr 1)); //6printf(%d\n, sizeof(arr[0] 1)); //7printf(%d\n, strlen(arr)); //8printf(%d\n, strlen(arr 0)); //9printf(%d\n, strlen(*arr)); //10printf(%d\n, strlen(arr[1])); //11printf(%d\n, strlen(arr)); //12printf(%d\n, strlen(arr 1)); //13printf(%d\n, strlen(arr[0] 1)); //14return 0; }答案分析: 1. 7字节: 表示整个数组的地址,1*77个字节 2. 4/8字节: 首元素地址是4/8个字节. 3. 1字节: *arr表示首元素是,一个字符型,1个字节. 4. 1字节: arr[1]表示数组的第二个元素,大小为1个字节. 5. 4/8个字节: arr表示整个数组的地址,占4/8个字节. 6. 4/8个字节: arr1表示数组最后一个元素的后一个位置的地址4/8个字节 7. 4/8个字节: 表示第二个元素的地址4/8个字节 8. 6字节: 从数组首元素开始,直到最后一个元素’\0’,共6个元素.6*16字节. 9. 6字节: arr0同样表示从数组的第一个元素,从第一个元素往后找,与上面一个道理. 10. 报错: strlen()括号里面是地址,所以会访问地址名为a的地址,a的ASCII码值是’97’,访问地址’97’,系统会报错 11. 报错: 同理,访问数组第二个元素,地址名b的地址,系统报错 12. 6字节: arr取出的是整个数组的地址,地址还是从数组首地址开始往后找\0’. 13. 随机值: arr的类型是char(*)[6],1会跳过这个数组,从数组后面开始找\0’. 14. 5字节: 从数组的第二个元素b开始往后找\0. 情况3 char* p “abcdef”; #include stdio.h #include string.h int main() {char* p abcdef;printf(%d\n, sizeof(p)); //1printf(%d\n, sizeof(p 1)); //2printf(%d\n, sizeof(*p)); //3printf(%d\n, sizeof(p[0])); //4printf(%d\n, sizeof(p)); //5printf(%d\n, sizeof(p 1)); //6printf(%d\n, sizeof(p[0] 1)); //7printf(%d\n, strlen(p)); //8printf(%d\n, strlen(p 1)); //9printf(%d\n, strlen(*p)); //10printf(%d\n, strlen(p[0])); //11printf(%d\n, strlen(p)); //12printf(%d\n, strlen(p 1)); //13printf(%d\n, strlen(p[0] 1)); //14return 0; }答案分析: 1. 4/8字节: p是一个指针变量,这里指向的是常量字符串,首元素’a’,指针大小4/8字节. 2. 4/8字节: p1表示指向第二个元素’b’,地址(指针)的大小为4/8字节. 3. 1字节: *p表示首元素’a’,字符a是char类型,占一个字节. 4. 1字节: p[0]同样是表示数组首元素,占一个字节. 5. 4/8个字节: p表示一级指针变量p的地址,类型为char**的二级指针,指针大小为4/8字节. 6. 4/8个字节: 二级指针p1,表示该二级指针的后一个地址,请看图.指针大小4/8字节. 7. 4/8个字节: 表示首元素地址1,即第二个元素地址,4/8个字节. 8 6字节 从字符串首元素开始,直到最后一个元素’\0’,共6个元素.6*16字节. 9 5字节 从字符串第二个元素往后,找’\0’,’bcdef’共5个元素 10. 报错: 表示从a地址,’97’地址往后找’\0’,系统报错. 11. 报错: 同理, 也是访问地址名为’97’的地址.系统报错. 12. 随机值 p表示一级指针变量p的地址,从存放指针’p’的地址往后找’\0’. 13. 随机值: p1表示从存放指针变量’p’的地址后面一个地址,找’\0’. 14 5字节: 从字符串的第二个元素开始找\0.二维数组 //二维数组 #include stdio.h int main() {int a[3][4] { 0 };printf(%d\n, sizeof(a)); //1printf(%d\n, sizeof(a[0][0])); //2printf(%d\n, sizeof(a[0])); //3printf(%d\n, sizeof(a[0] 1)); //4printf(%d\n, sizeof(*(a[0] 1))); //5printf(%d\n, sizeof(a 1)); //6printf(%d\n, sizeof(*(a 1))); //7printf(%d\n, sizeof(a[0] 1)); //8printf(%d\n, sizeof(*(a[0] 1))); //9printf(%d\n, sizeof(*a)); //10printf(%d\n, sizeof(a[3])); //11return 0; }答案: 1. 48字节 a单独出现在sizeof括号中,表示计算整个数组的地址,数组每个元素是整形,4*3*448字节 2. 4字节 a[0][0]计算数组首元素的地址,是一个整形占四个字节. 3. 16字节 a[0]是第一行的数组名,数组名单独放在sizeof中,表示第一行的地址,4*416字节 4. 4/8字节 a[0]不是单独出现,也没有(取地址),表示的是第一行第一个元素即a[0][0],后面1表示第一行第二个元素的地址. 5. 4字节 因为a[0]1表示第一行第二个元素的地址,则解引用得到的是第一行第二个元素.该元素是整形. 6. 4/8字节 a是数组名,表示二维数组的第一行,a的类型是int(*)[4],那么1会跳过一行,即表示第二行的地址,地址4/.8字节. 7. 16字节 *(a1)等价于a[0],第二行的数组名单独放在sizeof里面,表示得到第二行所有元素. 8. 4/8字节 (a[0] 1)),a[0]表示第一行的地址,1表示第二行的地址,地址是4/8字节 9. 16字节 对第二行解引用,等价于a[1],数组名单独放进sizeof,表示这一行的大小. 10. 16字节 a是表示第一行的地址,*a等价于a[0],类型是int(*)[4]. 11. 16字节 a[3]虽然表示第四行数组名,二维数组只有3行,但是sizeof并没有访问第四行,而是计算第四行类型大小,int(*)[4].希望通过这些练习能更加清楚的指针,通过sizeof和strlen函数里面的参数,指针的来回变化会加深对指针的理解.
http://www.w-s-a.com/news/18014/

相关文章:

  • 贵州网站开发流程晋江论坛手机版
  • 网站建设丿金手指谷哥14阿里巴巴官网电脑版
  • 网站开发招聘信息匿名ip访问网站受限
  • 网站转app工具网站规划建设与管理维护大作业
  • flash是怎么做网站的.net购物网站开发
  • 烟台网站建设求职简历品质商城网站建设
  • 做百度外链哪些网站权重高点做网站具备的条件
  • 怎么样用ppt做网站红番茄 网站点评
  • 建设银行河北分行招聘网站哪里能找到网站
  • 兰州营销型网站网站建设收费标准
  • 网站首页动图怎么做自己做网站很难
  • 自建网站如何盈利推广引流最快的方法
  • 网页设计网站结构图怎么弄网站用户 分析
  • 企业手机网站建设策划天津网页设计工作
  • 苏州vr全景网站建设公司怎么讲解网页的制作技术
  • 徐州智能建站怎么做苏州建设网站首页
  • 网站支付功能报价wordpress主页透明
  • asia域名的网站宁波模板建站源码
  • 官网网站怎么做个人网站盈利
  • 青龙桥网站建设网站同时做竞价和优化可以
  • 沭阳建设网站婴儿辅食中企动力提供网站建设
  • 常州做网站的公司济宁网站建设seo
  • 用wordpress做企业网站视频教程韶关建设网站
  • 怎么做一个免费的网站云南网站设计选哪家
  • dw做六个页面的网站做网站运营有前途吗
  • 中级网站开发工程师 试题战地之王网站做任务
  • 广东东莞保安公司湖南 seo
  • 无锡网站策划公司如何零基础学编程
  • 金融网站如何做设计网站开发流程 文档
  • 用jsp做网站国内知名设计工作室