c指针作业(第一次)
1. 数据类型的本质是什么? (从编译器的角度考虑)
数据类型可理解为创建变量的模具:是固定内存大小的别名
数据类型的作用:编译器预算对象(变量)分配的内存空间大小
注意:数据类型只是模具,编译器并没有分配空间,只有根据类型(模具)
创建变量(实物),编译器才回分配空间。
2. 如何为一个数据类型起别名?
通过 typedef 给数据类型起别名
typedef 经常和结构体一起使用
3. 既然有栈空间,为何要有堆空间?
栈的空间由谁分配和回收?
堆的空间又由谁分配和回收?
栈空间能自动释放空间,提高效率,由系统分配和回收空间
堆可以在任意分配空间,更加灵活,由程序员分配和回收空间
4. 有一个函数,数组做函数函数
void print_array(int a[128])
{
//sizeof(a) = ?
}
数组作为形参,会退化成指针
因此sizeof(a)=4
5. 有一个数组,如何求出元素个数?
int main(void)
{
int a[] = {1, 5, 7, 0, 10, 7, 3};
}
使用
sizeof(a)/sizeof(a[0]);
6. 在32位平台上
char ************p = NULL;
int *q = NULL;
sizeof(p) = ?
sizeof(q) = ?
指针类型长度,32位程序,长度 4
64位程序,长度 8
7. 画出下面代码的内存四区图
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char *get_mem(int size)
{
char *p2 = NULL; //分配4个字节的内存 栈区也叫临时区
p2 = (char *)malloc(size);
return p2;
}
int main(void)
{
char buf[100];
int a = 10; //分配4个字节的内存 栈区也叫临时区
int *p; //分配4个字节的内存
p = &a;
*p = 20;
char *mp = get_mem(100);
strcpy(mp, "ABCDEFG");
if (mp != NULL)
{
free(mp);
mp = NULL;
}
return 0;
}
c指针作业(第一次)的更多相关文章
- C语言指针作业
一.PTA实验作业 题目1:6-5 判断回文字符串 1. 本题PTA提交列表 2. 设计思路 3.代码截图 4.本题调试过程碰到问题及PTA提交列表情况说明. 第一次做的时候我j直接等于count,其 ...
- UML作业第一次:UML用例图绘制
UML第一次作业 一. 用例图:用例图(usecase diagram)是UML用于描述软件功能的图形.用例图包括用例.参与者及其关系,用例图也可以包括注释和约束.程序员要画时序图啥的用其他的比较麻烦 ...
- 编译原理作业(第一次)-完成retinf.c(阉割版)
首先,作业要求概括如下: 根据前缀表达式文法,实现statements() 和expression() 两个函数. 并且要求使得语义分析在完成分析前缀表达式并输出中间代码的同时,也能够将前缀表达式翻译 ...
- pta指针作业
#PTA实验作业 6-1 本题pta提交列表 设计思路 本题是一道简单的指针程序题,两个数已经分别被指针定义,只要把用其指针把二者加在一起和减去即可 调试过程 本题无调试过程 代码截图 6-2 1. ...
- 第五次团队作业——第一次项目冲刺——Alpha版本
Deadline:2016-11-19 8:00am 本次团队作业将持续三周时间,完成项目Alpha版本,在2016.11.19 的实践课上进行演示操作. 阅读或再次阅读<构建之法> ...
- C语言指针作业总结
学号 姓名 作业地址 PTA实验作业5 PTA排名2 阅读代码2 总结1 代码规范 总分 是否推荐博客 推荐理由 32 **薇 http://www.cnblogs.com/linyiwei/p/80 ...
- 第四次作业——第一次scrum冲刺
1.小组第一次冲刺任务 对Github上的HUSTOJ开源项目进行Fork,搭建基本环境 2.用户需求 (1)部分基本功能显示在首页 (2)能够提交题目并判题,并对自己所提交的题目正确性进行反馈,能够 ...
- 第四次作业-第一次scrum冲刺
团队成员 周斌 舒 溢 许嘉荣 唐 浩 黄欣欣 1.第一次冲刺任务安排 对Github上的HUSTOJ开源项目进行Fork,搭建基本环境 2.用户需求 ①基本功能显示在首页 ②能够提交题目并判题,并对 ...
- 2003031121-浦娟-python数据分析第三周作业-第一次作业
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/pexy/20sj 作业链接 https://edu.cnblogs.com/campus/pexy/20s ...
随机推荐
- vue中如何使用mockjs摸拟接口的各种数据
mockjs的作用 生成模拟数据 模拟 Ajax 请求,返回模拟数据 基于 HTML 模板生成模拟数据(后续更新) 帮助编写单元测试(后续更新) Vue 中使用 mock 有两种使用方式,一种是仅编写 ...
- vue的项目结构记录
vue的项目结构 不知道大家有没这样的情况,面对刚配置好的脚手架,创建的文件不知道该放哪个文件下,导致后面开发一些文件不好找,不利于维护. 接下来我说说我项目中的一些文件: 首先是components ...
- layui topbar图标(即返回顶部)未显示的解决方法
在自己搭建纯html模板的时候,遇到了topbar无法显示的问题,搜了社区都没啥有用的解决方法,于是引用了util.js的源文件,发现用dom变量未获取到正确的scrollTop值,经过反复测试,把这 ...
- 微信小程序(四) 模板的使用
模板的使用:单独建立一个页面,在另一个页面通过name属性名调用使用(注意要导入模板路径) template.wxml页面
- C++ 重点关键字
const 四种用法 1.修饰变量起到限定只读作用: void func(const int a, const string str) {...} const int* func(...) {...} ...
- webmagic 基本的方法
WebMagic的结构分为Downloader.PageProcessor.Scheduler.Pipeline四大组件,并由Spider将它们彼此组织起来.这四大组件对应爬虫生命周期中的下载.处理. ...
- MyBatis学习总结_Mybatis查询之resultMap和resultType区别
MyBatis的每一个查询映射的返回类型都是ResultMap,只是当我们提供的返回类型属性是resultType的时候,MyBatis对自动的给我们把对应的值赋给resultType所指定对象的属性 ...
- Docker 教程(一)
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器. Docker 容器通过 Docker 镜像来创建. 容器与镜像的关系类似于面向对象编程中的对象与类 ...
- Linux之Samba部署
1.Samba介绍 Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成,SMB(Server Messages Block,信息服务块)是一种 ...
- selenium Python 总结一些工作中可能会经常使用到的API。
selenium Python 总结一些工作中可能会经常使用到的API. 1.获取当前页面的Url 方法:current_url 实例:driver.current_url 2.获取元素坐标 方法:l ...