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

网站推广应该注意什么鹿城网络公司

网站推广应该注意什么,鹿城网络公司,学网站论坛,好用的国外服务器前言: 在上章及其上上章中练习了整形和字符串的计算 那么在本章中给大家提供有关指针和二维数组的习题计算 首先先进行二维数组的计算 复习一下定义:大家还记得吗? 二维数组 二维数组的定义: 在C语言中,二维数组…

前言:

在上章及其上上章中练习了整形和字符串的计算

那么在本章中给大家提供有关指针和二维数组的习题计算

首先先进行二维数组的计算

复习一下定义:大家还记得吗?

二维数组

二维数组的定义:
在C语言中,二维数组可以被视为一维数组的数组。例如,定义一个3行4列的二维数组a,可以这样写:

int a[3][4];

这里的a是一个包含3个一维数组的数组,每个一维数组包含4个整数。

欧克  
上习题

1.

#include <stdio.h>
int main()
{int a[3][4] = { 0 };printf("%zd\n", sizeof(a));printf("%zd\n", sizeof(a[0][0]));printf("%zd\n", sizeof(a[0]));printf("%zd\n", sizeof(a[0] + 1));printf("%zd\n", sizeof(*(a[0] + 1)));printf("%zd\n", sizeof(a + 1));printf("%zd\n", sizeof(*(a + 1)));printf("%zd\n", sizeof(&a[0] + 1));printf("%zd\n", sizeof(*(&a[0] + 1)));printf("%zd\n", sizeof(*a));printf("%zd\n", sizeof(a[3]));return 0;
}

1. 48   : a是数组名,单独放在sizeof内部,表示整个数组, 计算的是整个数组的大小,单位是字节3*4*4 = 48 

2.   4      a[0][0]是第一行第一个元素,也就是4个字节大小。

3. 16      a[0]是第一行这个一维数组的数组名,数组名单独放在sizeof内部,计算的是第一行这个一维数组的大小,也就是  4*4=16个

4. 4  / 8
      a[0]是数组名,这里表示数组首元素的地址,是第一行第一个元素的地址
      a[0] + 1就是第一行第二个元素的地址,是地址大小就是   4  / 8

5.        *(a[0] + 1))是第一行第二个元素-大小是4个字节

6. 4 / 8      a+1就是第二行的地址,是地址就是4/8个字节,a是二维数组的数组名,在这里表示首元素的地址,也就是第一行的地址, a+1就是第二行的地址

7. 16
    a + 1是第二行的地址,*(a+1)得到的就是第二行, int(*)[4]         对数组指针解引用,放一个数组,就是一行的一维数组,*(a+1) == a[1], a[1]是第二行的数组名,sizeof(arr[1])计算的是第二行的大小

8. 4 / 8:
    a[0]是第一行的数组名,&a[0]取出的是第一行这个一维数组的地址,&a[0]+1就是第二行的地址

9. 16     *(&a[0] + 1)是第二行,计算的是第二行的大小,16个字节

10.16   a是二维数组的数组名,a是首元素的地址,就是第一行的地//址,*a就是第一行, 计算的是第一行的大小,16个字节,*a == *(a+0) == a[0] 

11.16: 没有越界访问,sizeof内部的表达式是不计算的.   sizeof(int) - 4    sizeof(4+3);--4
   

strlen

 那strlen函数呢,可以用来计算数组嘛?

答案是不可以的。

strlen 是一个用于计算字符串长度的函数,若用来计算数组,则程序会奔溃的。

指针变量
指针变量的定义

在C语言中,指针变量用于存储另一个变量的内存地址。指针变量的定义格式如下:

类型名 *指针变量名;

例如:

  • 声明一个整型指针:int *p;
  • 声明一个字符型指针:char *cptr;
  • 声明一个浮点型指针:float *fptr;
 const
  • 修饰一般变量const int n = 5; 或 int const n = 5;。这两种写法等价,表示变量n的值不能被改变。
  • 修饰指针
    • const int *p; 或 int const *p;:指针p可以改变,但p指向的内容不能改变。
    • int *const p;:指针p不能改变,但p指向的内容可以改变。
    • const int *const p;:指针p不能改变,且p指向的内容也不能改变。
习题一如下:
#include <stdio.h>
int main()
{const char* p = "abcdef";printf("%zd\n", sizeof(p));printf("%zd\n", sizeof(p + 1));printf("%zd\n", sizeof(*p));printf("%zd\n", sizeof(p[0]));printf("%zd\n", sizeof(&p));printf("%zd\n", sizeof(&p + 1));printf("%zd\n", sizeof(&p[0] + 1));return 0;
}

1.  4 / 8     p是一个指针变量,大小就是 4 / 8个字节。

2.  4 / 8     p中存放的是'a'的地址,p+1是'b'的地址,大小就是4/8个字节。

3. 1          *p=='a'。

4.          p[0]==*(p+0)==*p,结果就同上,也就是第一个元素 'a'。

5. 4 / 8      &p是指针变量p的地址是地址大小就是 4 / 8个字节。

6. 4 / 8       &p + 1还是地址大小是4/8个字节,&p+1是指向p变量的后边,&a+n 后仍是地址。

7. 4 / 8        &p[0] + 1是'b'的地址,大小是4/8个字节。

习题二:
int main()
{char* p = "abcdef";printf("%zd\n", strlen(p));printf("%zd\n", strlen(p + 1));//printf("%zd\n", strlen(*p));//printf("%zd\n", strlen(p[0]));printf("%zd\n", strlen(&p));printf("%zd\n", strlen(&p + 1));printf("%zd\n", strlen(&p[0] + 1));return 0;
}

1. 6:   p里边存放是'a'的地址,也就是计算 abcdef

2. 5:   p+1是'b'的地址,也就是计算   bcdef

3.非法访问, *p是'a'

4.非法访问,效果同上

5. 随机值

&p是p这个变量的地址,strlen就是从p这块空间的起始地址开始向后找\0的

 p中存放的地址是不确定的,所有有没有\0,什么时候会遇到\0都不确定

6. 随机值

    &p+1是p变量后边的地址,从这个位置向后的内存数据不知道
    什么时候会遇到\0都不确定

7.  5

 

http://www.dtcms.com/a/409502.html

相关文章:

  • 潍坊有哪些网站怎样做一个简单的网站
  • 网站头部导航代码太原关键词排名优化
  • 个人网站发布怎么做多用户商城系统源码下载
  • 智慧团建网站登录入口电脑版浙江seo推广
  • 白山建设局网站品牌网站建设解决方
  • 网站关键词推广哪家好事业单位的网站建设费列哪
  • 西宁网站建设公司用wordpress建立网站
  • 如何用云服务器建设网站网站建设立项申请书
  • 做游戏交易网站有哪些内容上海建设摩托官方网站
  • 网站建设模板套用中山建站公司
  • 手机企业网站设计网站建设1000字
  • 山东省建设安全生产协会网站上海seo排名
  • 精品网站央视新闻的新闻
  • 免费wap建站的网址是什么了网站安全检测可以检测哪些内容风险信息
  • 建站模板有哪些网站主题说明怎么写
  • 最常见企业网站有哪些wordpress 页面模版
  • 小网站做几个关键词排名好的网站关键词优化企业
  • 成都网站建设07fly创建网站购买域名要注意什么
  • 如何做下载网站赚钱化德网站建设
  • 网站建设黄页视频嘉兴建站服务
  • 网站开发都是用什么做的网站建设特效大全
  • 成都网站建设工资公司网站是用什么软件做
  • 淘宝客建立网站推广怎么做成都app开发
  • 重庆网站价格杭州 做网站
  • 建手机端网站佳匠网站建设
  • 域名不变 新网站搭建什么网站能盈利
  • 网站打开慢什么原因呢网站登录界面设计
  • 敦煌网网站评价镇江网站排名优化
  • 做大型网站建设宁波网站优化公司电话
  • 在自己的网站做百度搜索框wordpress调用目录下