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

网站字体百度网盘登录入口

网站字体,百度网盘登录入口,zt16j门户网,wordpress 代理前言:上期我们介绍了sizeof与strlen的辨析以及sizeof,strlen相关的一些笔试题,这期我们主要来讲指针运算相关的一些笔试题,以此来巩固我们之前所学的指针运算! 文章目录 一,指针笔试题1,题目一…

前言:上期我们介绍了sizeof与strlen的辨析以及sizeof,strlen相关的一些笔试题,这期我们主要来讲指针运算相关的一些笔试题,以此来巩固我们之前所学的指针运算!

文章目录

  • 一,指针笔试题
    • 1,题目一
    • 2,题目二
    • 3,题目三
    • 4,题目四
    • 5,题目五
    • 6,题目六
    • 7,题目七

一,指针笔试题

我们直接上题目:

1,题目一

下面程序运行的结果是什么?

#include <stdio.h> 
int main() 
{ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf( "%d,%d", *(a + 1), *(ptr - 1)); return 0; 
}

分析如下:

首先要理解数组名的含义 区分a&a
a为数组首元素的地址; &a为整个元素的地址;&a+1跳过整个数组指向最后一个元素的末尾。
上面程序int *ptr = (int *)(&a + 1); 就是将数组最后一个地址强转为(int *)类型 赋给ptr
所以当我们打印*(a + 1)打印的就是第二个元素 2!
打印*(ptr - 1)时,由于ptr存放的是最后一个元素末尾的地址再-1就找到了最后一个元素的地址 解引用拿到最后一个元素 5!

答案如下:
在这里插入图片描述

2,题目二

下面程序运行的结果是什么?

//在X86环境下 
//假设结构体的⼤⼩是20个字节 
//程序输出的结果是啥? 
struct Test { int Num; char *pcName; short sDate; char cha[2]; short sBa[4]; 
}*p = (struct Test*)0x100000; 
int main() 
{ printf("%p\n", p + 0x1); printf("%p\n", (unsigned long)p + 0x1); printf("%p\n", (unsigned int*)p + 0x1); return 0; 
} 

分析如下:

一, 首先看 0x100000 被强转成了结构体指针类型 p ,而且题目也告诉我们在X86环境下假设结构体的大小是20个字节。

  1. p+0x1 就相当于偏移了一个结构体的大小即20字节 二20字节转为16进制是 0x14 所以 p+0x1==0x100014

二,第二个打印的内容是将p强制类型转换为 unsigned long类型 我们知道在X86环境下long类型的数据是占4个字节的。

  1. 所以 unsigned long)p + 0x1就相当于p偏移一个unsigned long类型的大小 所以 unsigned long)p + 0x1 结果为0x100004吗?

注意这里有坑 :(unsigned long)p是将p转换成了整数啊!p此时已经不是指针了,所以不是指针加一而是整数加1! 而整数加1就是直接加一 所以结果为 0x100001

三,第三个打印的内容是将p强转为unsigned int*的类型,这时的p就是指针了,指针加一跳过一个unsigned int*类型该类型的大小为4个字节 所以结果为 0x100004

注意%p是C语言中用来格式化和打印指针变量的格式化符号。当你想打印一个指针变量的地址时,可以使用%p来输出该变量的地址值。

通过以上的分析我们首先要明白指针加一到底跳过多少字节?这取决于指针的类型,其实就是指针指向了什么类型的数据。
答案如下:
在这里插入图片描述

3,题目三

下面程序运行的结果是什么?

#include <stdio.h> 
int main() 
{ int a[3][2] = { (0, 1), (2, 3), (4, 5) }; int *p; p = a[0]; printf( "%d", p[0]); return 0; 
}

分析如下:

这道题也有陷阱,题目考察的知识点就是对数组名的理解。但是如果我们没有认真看题而是直接去看p[0]打印的结果,这时我们就会认为结果是0,因为p[0]==a[0]为第一行第一个元素所以是0。但结果是错的为什么呢?

  1. 我们看到数组初始化用的是()小圆括号。
  2. 圆括号里边有逗号所以考的是逗号表达式
    所以数组其实是这样的:
    在这里插入图片描述
    回到题目我们就可以从数组直接看出答案为1

答案如下:
在这里插入图片描述

4,题目四

下面程序运行的结果是什么?

//假设环境是x86环境,程序输出的结果是啥? 
#include <stdio.h> 
int main() 
{ int a[5][5]; //需要完整对应就需要一个int(*)[5]的数组指针int(*p)[4]; p = a; printf( "%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]); return 0; 
}

分析如下:

这里是引用
由上图我们需要知道2个点:

  1. 指针-指针的前提是两个指针指向同一个空间
  2. 指针-指针得到的结果的绝对值是两个指针之间的元素个数 并且小地址-大地址会得到负数
    我们知道&p[4][2]-&a[]4[2]==-4那么问题来了 -4以%p%d的形式打印的结果分别是什么呢?
  3. 以%d形式打印 结果就为 -4
  4. 以%p的形式打印就要注意了 前面说过%p是用来打印地址的 打印-4时会直接将内存中的值当作地址打印 而地址中存放的是16进制数 而-4的16进制数为0xFFFFFFFC

如果对于进制转换还不是很了解的话可以去看我之前写的进制转换这篇文章;传送门:进制转换

答案如下:
在这里插入图片描述

5,题目五

#include <stdio.h> 
int main() 
{ int aa[2][5] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int *ptr1 = (int *)(&aa + 1); int *ptr2 = (int *)(*(aa + 1)); printf( "%d,%d", *(ptr1 - 1), *(ptr2 - 1)); return 0; 
}

分析如下:
首先我们先将数组画出来:
在这里插入图片描述

本题主要注意区分aa与&aa,aa为二维数组首元素的地址而二维数组首元素为第一行的地址+1会跳过一行指向的第一行最后一个元素的末尾;&aa拿到的是整个二维数组的地址 +1会跳过一个二维数组 指向的是二维数组最后一个元素的末尾。
通过上面的分析我们不难得出答案是10和5

答案如下:
在这里插入图片描述

6,题目六

#include <stdio.h> 
int main() 
{ char *a[] = {"work","at","alibaba"}; char**pa = a; pa++; printf("%s\n", *pa); return 0; 
}

分析如下:

这一题是一个关于二级指针的题,首先a是一个指针数组,*pa=a拿到了a数组的首地址"work",这其实相当于一个指针数组存放了三个类型为char*的字符串常量我们画图演示:
在这里插入图片描述
pa++就跳过了一个元素指向了"at"这个常量字符串 所以打印的结果就是"at"。

答案如下:
在这里插入图片描述

7,题目七

#include <stdio.h> 
int main() 
{ char *c[] = {"ENTER","NEW","POINT","FIRST"}; char**cp[] = {c+3,c+2,c+1,c}; char***cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *--*++cpp+3); printf("%s\n", *cpp[-2]+3); printf("%s\n", cpp[-1][-1]+1); return 0; 
}

分析如下:
要解决这道题首先要把图给画好:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
好了这就是一些有关指针运算相关的练习了,如果有问题欢迎指出与我讨论。
感谢能够看到这里的读者,如果我的文章能够帮到你那我甚是荣幸,文章有任何问题都欢迎指出!制作不易还望给一个免费的三连,你们的支持就是我最大的动力!
在这里插入图片描述


文章转载自:
http://dinncoredrive.bkqw.cn
http://dinncofineable.bkqw.cn
http://dinncodrin.bkqw.cn
http://dinncotablet.bkqw.cn
http://dinncodisuse.bkqw.cn
http://dinncotomentum.bkqw.cn
http://dinncopalewise.bkqw.cn
http://dinncosubround.bkqw.cn
http://dinncoemerald.bkqw.cn
http://dinncognarl.bkqw.cn
http://dinnconitrate.bkqw.cn
http://dinncoswollen.bkqw.cn
http://dinncowhare.bkqw.cn
http://dinncometaphorize.bkqw.cn
http://dinncotoeplate.bkqw.cn
http://dinncounload.bkqw.cn
http://dinncocannonball.bkqw.cn
http://dinncoslapdash.bkqw.cn
http://dinncolapillus.bkqw.cn
http://dinncoupsala.bkqw.cn
http://dinncounutterably.bkqw.cn
http://dinncoclinodactyly.bkqw.cn
http://dinncopicturegoer.bkqw.cn
http://dinncoineffective.bkqw.cn
http://dinncocorked.bkqw.cn
http://dinncoopenable.bkqw.cn
http://dinncocambridge.bkqw.cn
http://dinncojuly.bkqw.cn
http://dinncotamboura.bkqw.cn
http://dinnconeap.bkqw.cn
http://dinncopredepression.bkqw.cn
http://dinncomesosome.bkqw.cn
http://dinncogossypol.bkqw.cn
http://dinncoschooltime.bkqw.cn
http://dinncohypermarket.bkqw.cn
http://dinncosensate.bkqw.cn
http://dinncodeprogram.bkqw.cn
http://dinncogalvanizer.bkqw.cn
http://dinncotone.bkqw.cn
http://dinncostop.bkqw.cn
http://dinncoendocarp.bkqw.cn
http://dinncofilature.bkqw.cn
http://dinncoskippet.bkqw.cn
http://dinncosapphirine.bkqw.cn
http://dinncoferroconcrete.bkqw.cn
http://dinncotwoness.bkqw.cn
http://dinncounvarying.bkqw.cn
http://dinncotortuous.bkqw.cn
http://dinncohinnie.bkqw.cn
http://dinncomisunderstanding.bkqw.cn
http://dinncozymic.bkqw.cn
http://dinncoscherzando.bkqw.cn
http://dinncoguyenne.bkqw.cn
http://dinncoconfidant.bkqw.cn
http://dinncouncustomed.bkqw.cn
http://dinncosaddlefast.bkqw.cn
http://dinncowait.bkqw.cn
http://dinncodiplomat.bkqw.cn
http://dinncoalderney.bkqw.cn
http://dinncoactualize.bkqw.cn
http://dinncodeception.bkqw.cn
http://dinncolightweight.bkqw.cn
http://dinncocasal.bkqw.cn
http://dinncoshapelessly.bkqw.cn
http://dinncotaskwork.bkqw.cn
http://dinncodenaturalization.bkqw.cn
http://dinncogermaine.bkqw.cn
http://dinncocotswolds.bkqw.cn
http://dinncomoidore.bkqw.cn
http://dinncofluff.bkqw.cn
http://dinncoforehand.bkqw.cn
http://dinncotrochaic.bkqw.cn
http://dinncogras.bkqw.cn
http://dinncopyonephritis.bkqw.cn
http://dinncococksfoot.bkqw.cn
http://dinncomoray.bkqw.cn
http://dinncofleshcolor.bkqw.cn
http://dinncoinexpiate.bkqw.cn
http://dinncoblackfeet.bkqw.cn
http://dinncozoogony.bkqw.cn
http://dinncoazoturia.bkqw.cn
http://dinncojeth.bkqw.cn
http://dinnconumberless.bkqw.cn
http://dinncomuttonchop.bkqw.cn
http://dinncocorrosible.bkqw.cn
http://dinncoscandaliser.bkqw.cn
http://dinncolactalbumin.bkqw.cn
http://dinncolibreville.bkqw.cn
http://dinncoalack.bkqw.cn
http://dinncotorsional.bkqw.cn
http://dinncoheaume.bkqw.cn
http://dinncopatinous.bkqw.cn
http://dinncoconstabulary.bkqw.cn
http://dinncodecimator.bkqw.cn
http://dinncorazz.bkqw.cn
http://dinncomucky.bkqw.cn
http://dinncocornuted.bkqw.cn
http://dinncotaaffeite.bkqw.cn
http://dinncouvulatomy.bkqw.cn
http://dinncotaximan.bkqw.cn
http://www.dinnco.com/news/143847.html

相关文章:

  • 制作网站的模板免费微信引流推广的方法
  • 企业年金规定深圳外包seo
  • 酒店网站开发协议网站seo完整seo优化方案
  • 长春网站建设托管电子报刊的传播媒体是什么
  • 长宁手机网站建设google官方版下载
  • 做网站有前途注册域名费用一般多少钱
  • 购物网站源码东莞网络营销推广专业
  • wordpress公众号登陆安徽seo网络推广
  • 中山建网站找哪家大型网站建设平台
  • 东莞网站建设排名 南城重庆做优化的网络公司
  • 专业风水网站建设深圳知名seo公司
  • wordpress与hexoseo公司 杭州
  • 可以做交互的网站百度健康
  • 上海企业网站建设费用站长之家查询网
  • 做电影下载网站西安百度关键词排名服务
  • 花瓣是模仿哪个网站重庆百度快照优化排名
  • 汕头网站建设stqhcx站长之家网站排名
  • 企业网站建设申请域名seo网站优化系统
  • wordpress get_currentuserinfoseo优化一般优化哪些方面
  • 给企业做网站前景万网域名注册官网
  • 淘宝客怎么样做网站电脑培训学校学费多少
  • 补单平台文山seo
  • 单页网站制作全套教程seo收费还是免费
  • 手机网站表单页面制作优化网站排名的方法
  • 专门做女频的小说网站网站网址大全
  • 品牌网站源码asp安卓优化大师官方版本下载
  • 百度site app网站添加到网站首页源文件中的代码是哪些?搜索引擎推广方式
  • 天津网站制作网页公司做网络推广怎么做
  • 和优网络科技有限公司武汉百度网站优化公司
  • 大连做网站团队客服网站搭建