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

手机和电脑网站分开做建立网站程序

手机和电脑网站分开做,建立网站程序,企业网站建设需要多少钱知乎,淮南建设工程信息网站个人主页:点我进入主页 专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞,评论,收藏。 一起努力,一起奔赴大厂。 目录 1.前言 2.指针题写出下列程序的结…

个人主页:点我进入主页

专栏分类:C语言初阶      C语言程序设计————KTV       C语言小游戏     C语言进阶

C语言刷题

欢迎大家点赞,评论,收藏。

一起努力,一起奔赴大厂。

目录

1.前言   

 2.指针题写出下列程序的结果

 2.1

2.2

2.3

2.4 

2.5


1.前言   

     在上一篇文章中我给大家讲解了关于指针和数组的笔试题,它主要就是sizeof(数组名),其中数组名是整个数组。&数组名加减整数其中&数组名是整个数组的地址,。即使在sizeof()中也是整个数组的地址对于二维数组,我们可以将二维数组看成一维数组的数组,例如arr[3][4],二维数组的数组名为arr,一维数组的数组名为arr[3],&arr ,arr都是二维数组的地址,但是在sizeof中arr加整数表示第几行的地址,arr[整数] &arr[整数]都表示第几行的地址。详细的可以点击指针和数组详解

 2.指针题写出下列程序的结果

 2.1

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进行取地址操作然后加1,其中取地址数组名得到的是数组的地址,加1是跳过一个数组,我们可以画成

我们可以理解为ptr最开始指向数组的首元素,取地址数组名加1跳过一个数组得到 

 它指向了数组对后一个元素的后一个地址,我们看故*(ptr-1)就是将ptr前移一个元素,也就是5,*(a+1)中数组名没有单独存在,故是首元素的地址加1得到第二个元素的地址,解引用为第二个元素为2.

2.2

struct Test
{
int Num;
char *pcName;
short sDate;
char cha[2];
short sBa[4];
}*p;
//假设p 的值为0x100000。 如下表表达式的值分别为多少?
//已知,结构体Test类型的变量大小是20个字节
int main()
{
printf("%p\n", p + 0x1);
printf("%p\n", (unsigned long)p + 0x1);
printf("%p\n", (unsigned int*)p + 0x1);
return 0;
}

         我们先看0X1是十六进制的数据是1,指针p值为0x100000加1是跳过一个元素故跳过20个字节得到0x100014,我们将指针p强制转化为unsigned long类型,加1就是单纯的加1得到0x100001,将p强制转化为unsigned int*类型也就是相当于p指向一个整形的元素,加1跳过4个字节得到0x100004。在这道题中我们需要对数据的类型掌握的很熟练。

2.3

int main()
{
int a[4] = { 1, 2, 3, 4 };
int *ptr1 = (int *)(&a + 1);
int *ptr2 = (int *)((int)a + 1);
printf( "%x,%x", ptr1[-1], *ptr2);
return 0;
}

        首先对于ptr1指针他和第一题一样都是得到数组的地址加1跳过一个数组 ,对于ptr1[-1]相当于ptr-1也就是指针向前移动4个字节指向数组的最后一个元素得到0x4,对于ptr2指针我们先看(int)a+1,我们将a强制转化为整形然后加1,也就是数组将数组的首地址转化为整形然后加1,具体我们将初始状态画为

强制转化为整形让后加1在强制转化为int*为 

由于打印时会访问4个字节也就是 

故得到0x2。

2.4 

#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;
}

        这道题非常的有意思,需要我们对数组有很深的认识,仔细看,它是逗号进行运算吗,看似6个元素其实是三个元素,分别为1,3,5;这是一个二维数组,p=a[0],其中a[0]是第一行的地址,对于p[0],相当于a[0][0],也就是1.

2.5

int main()
{
int a[5][5];
int(*p)[4];
p = a;
printf( "%p,%d\n", &p[4][2] - &a[4][2], &p[4][2] - &a[4][2]);
return 0;
}

        我们可以进行画图为

        对于int(*p)[4]是一个数组指针,每个指针含义4个元素,想要将p指向二维数组虽然二维数组每行是占5个元素,我们 也是可以将它放进去对于&a[4][2],具体可以画为

 地址进行相减为-4,%p对应的为FFFF FFFF FFFF FFFC。

到这里今天的内容就结束了,希望大家可以学到很多东西,最好别忘了一键三连呦.

http://www.yayakq.cn/news/514642/

相关文章:

  • 旅游景点网站设计论文公司如何做网络推广营销
  • 微信公众号h5网站开发制作网站在本机运行
  • 学院管理网站建设有些网站为什么可以做资讯
  • 网站域名可以自己做吗能在家做的兼职的网站
  • 网站技能培训机构外包小程序公司
  • qq是哪家公司运营的seo网站优化专员
  • 东莞专业微网站建设推广河南省建设工程信息网查询
  • 天远软件网站建设小牛门户网站
  • 罗湖商城网站建设哪家好百度站长工具使用方法
  • 江苏省国家示范校建设专题网站网上如何推广平台
  • 2019年做网站还有机会吗wordpress怎么备份数据库结构
  • 网站的建立过程西安大公司
  • 做网站上传图片一直错误wordpress照片ppt
  • 常熟做网站推广的排名查询
  • 电白手机网站建设公司福州模板建站代理
  • 做网站镜像步骤微信红包封面开放平台
  • 手机建站网wordpress在固定链接设置页面
  • 网站备案名称规定WordPress开网站很慢
  • PPT做的好的有哪些网站如何规划网站栏目
  • 信息技术课做网站网站维护界面设计
  • 网站内套网站代码浙江省网站备案流程
  • 个人建设网站还要备案么校园网站如何管理
  • 免费可商用图片素材网站郑州注册公司费用
  • 光谷 网站建设公司wordpress主题包安装
  • 免费ppt下载网站上海建设厅网站
  • 360网站推广wordpress 访问密码忘记
  • asp做的网站亚丝娜娜本子全彩域名备案 填写网站信息
  • 加盟培训网站建设建设制作外贸网站公司
  • 国外设计网站app有哪些商城网站都有什么功能
  • php下载站源码凡科建站收费价目表