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

苏州市建设局网站集群统一登录做 理财网站

苏州市建设局网站集群统一登录,做 理财网站,郑州十大最有名的公司,网站300m空间strlen和sizeof的区别 strlen是统计\0之前的字符个数&#xff0c;传递的是地址 sizeof是计算类型的字节数&#xff0c;其实在编译期间会通过类型来确定大小 下边我来讲一下常见的面试题&#xff0c;过程很详细放心观看 #include<stdio.h>#include <string.h>int …

strlen和sizeof的区别

strlen是统计\0之前的字符个数,传递的是地址

sizeof是计算类型的字节数,其实在编译期间会通过类型来确定大小

下边我来讲一下常见的面试题,过程很详细放心观看

#include<stdio.h>#include <string.h>int main()
{char arr[] = { 'a','b','c','d','e','f' };printf("%d\n", strlen(arr));//随机值,因为strlen是遇到斜杠\0结束,统计\0之前的字符个数printf("%d\n", strlen(arr + 0));//起始地址不变,还是随机值//printf("%d\n", strlen(*arr));//第一个元素,错误,只能给地址//printf("%d\n", strlen(arr[1]));//元素错误同理printf("%d\n", strlen(&arr));//随机值printf("%d\n", strlen(&arr + 1));//随机值printf("%d\n", strlen(&arr[0] + 1));//随机值printf("%d\n", sizeof(arr));//sizeof统计的是字节大小(包括\0),记住数组名放在sizeof内部表示数组全部元素大小,所以是6printf("%d\n", sizeof(arr + 0));//arr+0和数组名arr不是一个意思,所以表示的是地址,4/8printf("%d\n", sizeof(*arr));//数组首元素地址解引用之后是数组首元素,1字节printf("%d\n", sizeof(arr[1]));//元素b,1字节printf("%d\n", sizeof(&arr));//整个数组的地址也是地址,4/8printf("%d\n", sizeof(&arr + 1));//跳过一个数组大小,还是地址4/8printf("%d\n", sizeof(&arr[0] + 1));//第二个元素的地址,注意[]优先级比&高return 0;
}

 

#include<string.h>
int main()
{char arr[] = "abcdef";//这种就是数组结尾多了一个\0,本质还是数组printf("%d\n", strlen(arr));//6,统计\0之前的字符个数printf("%d\n", strlen(arr + 0));//还是6,起始地址是数组首元素地址//printf("%d\n", strlen(*arr));//err 不能放元素//printf("%d\n", strlen(arr[1]));//err t同理printf("%d\n", strlen(&arr));//还是6,因为数组的地址和数组首元素的地址相同,直接统计\0之前的字符个数printf("%d\n", strlen(&arr + 1));//随机值,跳过一个数组的地址,相当于后边是随机值printf("%d\n", strlen(&arr[0] + 1));//第二个元素的地址,5printf("%d\n", sizeof(arr));//7,统计字符个数+\0printf("%d\n", sizeof(arr + 0));//数组首元素地址,地址大小是4/8(32位或者64位机器的区别)printf("%d\n", sizeof(*arr));//数组首元素的地址被解引用,是数组首元素,1printf("%d\n", sizeof(arr[1]));//数组第二个元素,1printf("%d\n", sizeof(&arr));//数组的地址,大小是4/8printf("%d\n", sizeof(&arr + 1));//还是地址printf("%d\n", sizeof(&arr[0] + 1));//数组第二个元素的地址return 0;
}

本节的内容基础之前写过,我把链接放在综这里有需要的可以看看,比如数组名那里就可以回顾一下指针的进阶_在指针中int*w,*p=*w是-CSDN博客文章浏览阅读1.7k次,点赞33次,收藏39次。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。1. sizeof(数组名),这里的数组名不是数组首元素的地址,数组名表示整个数组,sizeof(数组名)计算的是整个数组的大小,单位是字节。数组名是数组首元素的地址,arr[1]拿到的是arr1数组名,再使用下标就能访问数组的元素,很简单。2. &数组名,这里的数组名表示整个数组, &数组名取出的是整个数组的地址。是指针,指针指向的是一个函数,指向的函数无参数,返回值类型为void。_在指针中int*w,*p=*w是 https://blog.csdn.net/eixjdj/article/details/145118231

#include<stdio.h>
#include<string.h>
int main()
{const char* p = "abcdef";//字符串结尾有\0printf("%d\n", strlen(p));//6,统计\0之前的printf("%d\n", strlen(p + 1));//5,从第二个地址开始// printf("%d\n", strlen(*p));//err,不能放非地址//printf("%d\n", strlen(p[0]));//err 和上边同理printf("%d\n", strlen(&p));//相当于是字符串首地址的地址,p指向一个地址,不确定什么时候遇到\0,是随机值printf("%d\n", strlen(&p + 1));//跳过整个数组的地址,随机值printf("%d\n", strlen(&p[0] + 1));//第二个元素的地址,5printf("%d\n", sizeof(p));//地址大小是4/8printf("%d\n", sizeof(p + 1));//第二个位置的指针,4/8printf("%d\n", sizeof(*p));//第1个元素,刚才讲过是1printf("%d\n", sizeof(p[0]));//第一个元素,1printf("%d\n", sizeof(&p));//地址大小是4或8printf("%d\n", sizeof(&p + 1));//地址大小是4或8printf("%d\n", sizeof(&p[0] + 1));//地址大小是4或8return 0;
}

#include<stdio.h>
#include<string.h>
int main()
{int a[3][4] = { 0 };printf("%d\n", sizeof(a));//sizeof数组名是整个数组大小,所以是3*4*4=48printf("%d\n", sizeof(a[0][0]));//这个是经典的二维数组的第一个元素,大小是一个整形4printf("%d\n", sizeof(a[0]));//是第一行数组的数组名,数组名放在sizeof是整个数组大小,所以是第一行的大小是4*4=16printf("%d\n", sizeof(a[0] + 1));//第一行数组的首元素的地址+1跳过一个整形,是第一行第二个元素的地址,4/8printf("%d\n", sizeof(*(a[0] + 1)));//解引用第一行第二个元素的地址,拿到这个元素,4printf("%d\n", sizeof(a + 1));//二维数组的数组名也是数组首元素的地址,二维数组的多行一维数组可以看成多个元素//那么可以理解为第一个元素的地址也就是第一行的地址,第一行的地址+1跳过这一行到第二行,成为第二行的地址,数组的地址是4/8printf("%d\n", sizeof(*(a + 1)));//第二行的地址被解引用,是第二行的所有元素也就是16printf("%d\n", sizeof(&a[0] + 1));//a[0]是第一行数组名,取地址是第一行数组的地址,+1是跳过第一行元素,成为第二行元素的地址,4/8printf("%d\n", sizeof(*(&a[0] + 1)));//对第二行数组地址解引用,拿到第二行的数组元素是16printf("%d\n", sizeof(*a));//a是数组首元素的地址,第一行的地址,解引用拿到这一行是16printf("%d\n", sizeof(a[3]));//这里不会越界访问,因为sizeof是在编译时查看括号内的类型而确定大小,并不会运算,所以还是16return 0;
}

以上就是对常见笔试题的剖析,感谢一直以来支持我的人!!

 

 

 

 

 


文章转载自:

http://G8NO3fpq.Lwygd.cn
http://QnFOCd0Y.Lwygd.cn
http://2A4StHBl.Lwygd.cn
http://XtSJGKQm.Lwygd.cn
http://bE5z73UI.Lwygd.cn
http://NxFn7Twr.Lwygd.cn
http://iKvAA95e.Lwygd.cn
http://egnBGqwI.Lwygd.cn
http://rYmX2T2O.Lwygd.cn
http://MqaMhvN1.Lwygd.cn
http://uF4DdqlL.Lwygd.cn
http://8bdD9N46.Lwygd.cn
http://0PDqPLJg.Lwygd.cn
http://Qmxcvr9g.Lwygd.cn
http://EhoL6p1x.Lwygd.cn
http://Ul87T00I.Lwygd.cn
http://nBDEDObl.Lwygd.cn
http://maZFWnOO.Lwygd.cn
http://HPGnrRYF.Lwygd.cn
http://pEp2BuWA.Lwygd.cn
http://eUreHNsV.Lwygd.cn
http://G2uG3mzX.Lwygd.cn
http://7AyVU54c.Lwygd.cn
http://RsbaRTS2.Lwygd.cn
http://hxBaFNUL.Lwygd.cn
http://h7kKZV0n.Lwygd.cn
http://1rKBVIwE.Lwygd.cn
http://vFdYQRuL.Lwygd.cn
http://LPsD6gJY.Lwygd.cn
http://ydPOarOj.Lwygd.cn
http://www.dtcms.com/wzjs/610740.html

相关文章:

  • 自己做网站怎么修改语言python php 网站开发
  • 营销型网站公司长治网站制作怎么做
  • 网站seo 优化织梦 更换网站图标
  • 合合肥网站建设广州口碑好的网站建设设计
  • 怎么做网页会议邀请函深圳网站seo推广
  • 天津市网站建站制作郑州商城网站开发
  • 微信人生里面微网站怎么做广东东莞新增本土确诊0例
  • 四川住房城乡建设厅官方网站动画设计招聘信息
  • 北京市优化网站中小企业网站建设市场
  • 浙江省建设行政主管部门网站手机网页及网站设计
  • 开发商城网站公司无锡网站建设专注千客云网络
  • 预约网站模板德阳小程序开发
  • 动漫设计师发展前景嘉峪关网站seo
  • 二手交易平台 网站开发施工企业的描述
  • 中国商业网点建设开发中心官方网站深圳企业贷款中介
  • 做嗳啪啪 网站如何做好网络宣传工作
  • 网站怎么做市场分析什么是网络营销产生的现实基础
  • 航空网站建设未满18岁能申请网站备案吗
  • 医生可以自己做网站吗深圳罗湖企业网站建设
  • 茌平建设局网站网页设计作业成品免费百度云
  • 天津公司网站设计模块建站平台
  • 图片展示网站织梦源码上海室内设计公司排名前十强
  • 个人网站建设论文绪论网站设置301重定向
  • 网站建设市场多大鲜花网站建设解决方案
  • SaaS网站可以做seo嘛wordpress转html
  • 品牌网站设计工作室佘山做网站公司
  • 竞价网站做不做链接网站设计建设公司联系方式
  • 自己做的网站怎么弄到网上青岛网站建设seo优化制作设计
  • 搜索网站做淘宝客wordpress 支付宝免签
  • 新县住房和城乡规划建设网站济南电商网站开发