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

网站开发建设与维护做什么的互联网官方网站

网站开发建设与维护做什么的,互联网官方网站,公司如何申请一个网站网址,帮人做分销网站违法么你确定你学会指针了#xff1f; 你确定你明白数组名了#xff1f; 如果你觉得你学的还不错#xff0c;就进来看看吧#xff0c;相信你看完之后一定能收获更多。 数组名的理解一定要弄清楚 数组名是数组首元素的地址 但是有2个例外#xff1a; sizeof(数组名)#xff0c;这…你确定你学会指针了 你确定你明白数组名了 如果你觉得你学的还不错就进来看看吧相信你看完之后一定能收获更多。 数组名的理解一定要弄清楚 数组名是数组首元素的地址 但是有2个例外 sizeof(数组名)这里的数组名表示整个数组sizeof(数组名)计算的是整个数组的大小单位是字节数组名这里的数组名表示整个数组数组名取出的是数组的地址 下面是常见 指针和数组笔试题及解析 (解析以注释的形式写在代码当中) 下面题目的类型都是给你一个数组你来判断printf到底输出什么。 int main() {//一维数组int a[] { 1,2,3,4 };//4个元素每个元素4个字节int类型printf(%d\n, sizeof(a));//16 //数组名a单独放在sizeof内部数组名表示整个数组计算的是整个数组的大小单位是字节是16字节printf(%d\n, sizeof(a 0));//4///a并非单独放在sizeof内部也没有所以数组名a是数组首元素的地址a0还是首元素的地址printf(%d\n, sizeof(*a));//4//a并非单独放在sizeof内部也没有,所以数组名a是数组首元素的地址,*a是首元素相当于a[0]printf(%d\n, sizeof(a 1));//4//a并非单独放在sizeof内部也没有所以数组名a是数组首元素的地址,a1就是第二个元素的地址相当于a[1]printf(%d\n, sizeof(a[1]));//4//a[1]就是数组的第二个元素这里计算的就是第二个元素的大小printf(%d\n, sizeof(a));//4//是取出数组的地址但是数组的地址也是地址是地址就是4/8个Byte,数组的地址和数组首元素的地址的本质区别是类型的区别,并非大小的区别//a -- int* int * p a;//a -- int (*)[4] int (*p)[4] a;printf(%d\n, sizeof(*a));//16//对数组指针解引用访问一个数组的大小,即*解引用和取地址可以相互抵消sizeof(*a)sizeof(a)printf(%d\n, sizeof(a 1));//4//a数组的地址a1还是地址此时指向的是数组中a[3]4后面的地址数组指针1跳过一个数组printf(%d\n, sizeof(a[0]));//4//a[0]是首元素的地址printf(%d\n, sizeof(a[0] 1));//4//a[0]是首元素的地址a[0]1就是第二个元素的地址return 0; }int main() {//字符数组char arr[] { a,b,c,d,e,f };//6个字符printf(%d\n, sizeof(arr));//6//数组名arr单独放在sizeof内部计算的是整个数组的大小printf(%d\n, sizeof(arr 0));//4//arr是首元素的地址arr[0]是地址就是4个字节,指针变量的大小和类型无关不管什么类型的指针变量大小都是4/8个字节printf(%d\n, sizeof(*arr));//1//arr是首元素的地址*arr就是首元素printf(%d\n, sizeof(arr[1]));//1//第二个元素printf(%d\n, sizeof(arr));//4//arr是数组的地址只要是地址就是4/8sizeof(arr)就是4/8个字节printf(%d\n, sizeof(arr 1));//4//arr1 是跳过数组后的地址,即f后的地址printf(%d\n, sizeof(arr[0] 1));//4//第二个元素的地址是地址就是4/8//strlen是求字符串长度的函数,统计的是在字符串中\0之前出现的字符的个数printf(%d\n, strlen(arr));//随机值(6)//arr是首元素的地址,往后走不确定到哪里才能到\0,字符数组不像整型数组一样最后一个数字后面就是\0字符数组的\0不知道在后面什么地方printf(%d\n, strlen(arr 0));//随机值(6)//arr是首元素的地址, arr0还是首元素的地址printf(%d\n, strlen(*arr));//非法访问错误//arr是首元素的地址, *arr就是首元素 - a的ASCLL码 - 97站在strlen的角度认为传参进去的a-97就是地址97作为地址直接进行访问就是非法访问printf(%d\n, strlen(arr[1]));//非法访问错误//b 的ASCLL码- 98错误与上面相同printf(%d\n, strlen(arr));//随机值不知道/0在哪里//取出的是整个数组的地址,arr取出的类型是 char (*)[6]数组指针类型strlen的参数类型是const char*编译器会报警告但是不影响类型发生了变化但是值不变。printf(%d\n, strlen(arr 1));//随机值//arr1,是f后的地址跳过了整个数组不知道什么时候遇到/0所以也是随机值printf(%d\n, strlen(arr[0] 1));//随机值//一个字符的地址1是b的地址后面不知道/0在哪里也是随机值return 0; }int main() {char arr[] abcdef;//a b c d e f /0printf(%d\n, sizeof(arr));//7//abcdef和/0一共七个元素printf(%d\n, sizeof(arr 0));//4//首元素地址0还是首元素地址printf(%d\n, sizeof(*arr));//1//首元素地址解引用还是首元素a一个字节printf(%d\n, sizeof(arr[1]));//1//第二个元素一个字节printf(%d\n, sizeof(arr));//4//数组的地址为4/8printf(%d\n, sizeof(arr 1));//4//跳过整个数组的地址为/0后的地址是地址就是4/8printf(%d\n, sizeof(arr[0] 1));//4//第一个元素的地址1就是第二个元素的地址是地址就是4/8printf(%d\n, strlen(arr));//6//首元素地址传给strlen往后数因为有/0所以是6printf(%d\n, strlen(arr 0));//6//首元素地址0还是首元素地址往后数因为有/0所以是6printf(%d\n, strlen(*arr));//非法访问错误//对首元素地址解引用其实就是字符a传进去的是a的ASCLL码值97会报错printf(%d\n, strlen(arr[1]));//非法访问错误//传进去的是第二个元素b穿的是b的ASCLL码会报错printf(%d\n, strlen(arr));//6//传进去的是首元素的地址往后数因为有/0所以是6printf(%d\n, strlen(arr 1));//随机值//首元素的地址1跳过整个数组即到/0之后/0之后什么时候遇到下一个/0不知道为随机值printf(%d\n, strlen(arr[0] 1));//5//第二个元素的地址从b数到/0有5个return 0; }int main() {char* p abcdef;//a b c d e f \0但p中存放的是a的地址p能够找到abcdef/0printf(%d\n, sizeof(p));//4//计算的是指针变量的大小printf(%d\n, sizeof(p 1));//4//char*指针1向后偏移一个但p1还是一个地址是地址就是4/8printf(%d\n, sizeof(*p));//1// *paprintf(%d\n, sizeof(p[0]));//1//p[0]等价于*p0等价于*p即第一个元素aprintf(%d\n, sizeof(p));//4//p仍然是一个地址是地址就是4/8假设p的地址是0x0012fc60指向的就是0x00的地址类型是char**二级指针printf(%d\n, sizeof(p 1));//4//p是地址p1还是地址是地址就是4/8假设p的地址是0x0012fc60指向的就是0x60类型是char**二级指针printf(%d\n, sizeof(p[0] 1));//4//指向第二个元素的地址是地址就是4/8printf(%d\n, strlen(p));//6//a的地址往后数到/0printf(%d\n, strlen(p 1));//5//b的地址往后数到/0printf(%d\n, strlen(*p));//非法访问错误//p指向a的地址*p就是a传的a的ASCLL码错误printf(%d\n, strlen(p[0]));//非法访问错误//和*p一样的是a传的a的ASCLL码错误printf(%d\n, strlen(p));//随机值//p假设取的是0x0012ff40这个指针变量占4个字节即从0x0012ff40往后找/0,后面什么位置有/0不知道printf(%d\n, strlen(p 1));//随机值//p假设取的是0x0012ff40,p1指的是0x40后的地址即从0x40往后找/0,后面什么位置有/0不知道printf(%d\n, strlen(p[0] 1))//5//第二个元素b的地址往后数到/0,有五个return 0; }int main() {//二维数组int a[3][4] { 0 };printf(%d\n, sizeof(a));//48//数组名a单独放在sizeof内部表示整个数组一共3*412个元素每个元素4个字节即12*448printf(%d\n, sizeof(a[0][0]));//4//a[0][0]是数组的第一行第一列的元素printf(%d\n, sizeof(a[0]));//16//二维数组其实是一维数组的数组a[0]可以看成第一行的元素a[1],a[2]可以看成二三行的元素即整个第一行的大小即4*416printf(%d\n, sizeof(a[0] 1));//4//a[0]并非放在sizeof内部所以a[0]表示数组首元素的地址也就是第一行第一个元素的地址。a[0]1表示a[0][1]的地址。是地址就是4/8printf(%d\n, sizeof(*(a[0] 1)));//4//a[0]1是a[0][1]的地址解引用就是第二个元素printf(%d\n, sizeof(a 1));//4//a作为二维数组的数组名名没有单独放在sizeof内部a就是首元素的地址也就是第一行的地址。a1就是第二行的地址a的类型是一个数组指针int(*)[4],是地址就是4/8printf(%d\n, sizeof(*(a 1)));//16//a1是第二行的地址解引用就是第二行 4*416printf(%d\n, sizeof(a[0] 1));//4//a[0]是第一行的数组名a[0]取出的是数组的地址取出的是第一行这个一维数组的地址类型就是int(*)[4]a[0]1就是第二行的地址是地址就是4/8printf(%d\n, sizeof(*(a[0] 1)));//16//对第二行的地址解引用就是第二行4*416printf(%d\n, sizeof(*a));//16//a没有单独放在sizeof内a表示数组首元素的地址也就是第一行的地址解引用就代表第一行4*416printf(%d\n, sizeof(a[3]));//16//a[3]表示第四行按理说应该越界了但是没有sizeof是计算不会去真的访问第四行其相当于和a[0]一样4*416return 0; }总结 指针和数组名在C语言中非常重要它们是C语言中最基本的数据类型和数据结构之一。以下是指针和数组名的重要性 1.内存管理指针允许我们直接访问和操作内存中的数据。通过指针我们可以动态地分配和释放内存有效地管理内存资源。 2.数组访问数组名本质上是一个指向数组第一个元素的指针。通过数组名我们可以方便地访问和操作数组中的元素。 3.函数参数传递通过指针作为函数参数可以实现对函数外部变量的修改。这在需要在函数内部修改变量的值时非常有用。 4.字符串处理C语言中的字符串是以null字符结尾的字符数组。通过指针和数组名我们可以方便地处理字符串比如拷贝、连接、比较等操作。 5.动态数据结构指针可以用来创建和操作动态数据结构比如链表、树等。通过指针我们可以动态地创建和销毁节点连接和遍历节点。 6.性能优化在一些需要高效处理大量数据的场景中通过指针和数组名可以减少内存拷贝和数据移动的开销提高程序的执行效率。 总的来说指针和数组名在C语言中扮演着非常重要的角色它们是C语言实现高效、灵活和可靠的关键工具。在学习和使用C语言时理解和掌握指针和数组名的概念和用法是非常重要的。
http://www.zqtcl.cn/news/642836/

相关文章:

  • 建设彩票网站需要哪些要求城乡与住房建设厅网站首页
  • 公司做网站费用计入什么科目网络建设规划
  • 外贸网站建设案例深圳设计网站培训
  • 龙岗地区做网站公司北京装饰公司排行 2019
  • 大企业网站建设方案wordpress博客模板查询
  • 手机网站建设动态公司做网站效果怎么样
  • 网站推广和优化教程上海网络科技有限公司招聘
  • 即墨建网站价格商城二次开发
  • 网站排名易下拉教程怎么做网店运营
  • 聊城做网站公司聊城博达海外服务器租用多少钱一年
  • 手机上网站做国外销售都上什么网站
  • 网站建设与管理报告书做电销有什么资料网站
  • 网站建设哪家最好企业商城网站建设方案
  • 舟山市建设工程质量监督站网站网页版微信二维码加载失败
  • 金融网站html5模板给自己家的公司做网站好做吗
  • 新农村建设投诉在哪个网站上海做电缆桥架的公司网站
  • 免费行情100个软件网络优化论文
  • asp.net动态的网站开发个人业务网站带后台
  • 控制网站的大量访问关于实验室建设的英文网站
  • 中国容桂品牌网站建设怎么自己做个网站做链接跳转
  • 安徽省建设工程协会网站昆明官网seo厂家
  • 品牌整合推广搜狗优化好的网站
  • 娄底手机网站制作深圳网站建设怎么做
  • 好的龙岗网站建设附近装修公司电话和地址
  • 网站后台生成文章很慢网络营销毕业设计
  • 如何把资料上传到网站什么叫高端网站定制
  • 郑州企业网站建设团队什么是交换链接
  • 如何建立一个外贸公司网站活动营销的方式有哪些
  • 上海工程造价咨询公司余姚网站seo运营
  • 小加工厂做网站wordpress免费主题破解版