C语言深度解析
文章平均质量分 51
IT小男孩
这个作者很懒,什么都没留下…
展开
-
C语言--关于int类型以及指针类型所占字节大小的探讨
1)int类型以及指针的类型所占字节的大小由什么决定的?首先,介绍几个基本概念:(主要摘自百度百科) 机器字长:在同一时间中处理二进制数的位数叫字长。通常称处理字长为8位数据的CPU叫8位CPU,32位CPU就是在同一时间内处理字长为32位的二进制数据。字长由微处理器(CPU)对外数据通路的数据总线条数决定。 寻址空间:寻址空间一般指的是CPU对于内存寻址的能力。CPU最大能查找多...原创 2018-05-11 20:35:00 · 6867 阅读 · 0 评论 -
C语言--关于指针两种初始化赋值操作的思考
探讨: int * p = & a; 和 int * p = &(int )0x0012ff60; 的含义和区别(1)我们来看第一段代码:#include <stdio.h>int main(void){ int a = 0; int *p = &a; printf("The value is: %d/n"原创 2018-05-11 20:38:20 · 1684 阅读 · 0 评论 -
C语言--动态内存分配
1)什么是动态内存分配、静态内存分配。百度百科中这样定义静态内存分配:分配内存大小的是固定,比如定义一个数组,数组的大小是我们提前定义好的,一直到程序结束。动态内存分配:动态内存分配(Dynamic Memory Allocation)就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。2)为什么要进行动态内存分配?(1)传统数组(即静态内存分配)有着如下缺...原创 2018-05-12 18:12:32 · 562 阅读 · 0 评论 -
C语言--typedef struct与struct定义结构体的区别
我在很多C语言代码中看到很多定义结构体时使用typedef struct,而不适用struct,就了解了这样做的原因:typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。 具体区别在于: (1)若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n; (2)若用typedef,可以这样写,t...原创 2018-05-12 21:11:27 · 5669 阅读 · 0 评论 -
C语言--为什么char类型的范围是 -128~+127
在C语言中, signed char 类型的范围为-128~127,每本教科书上也这么写,但是没有哪一本书上(包括老师)也不会给你为什么是-128~127,这个问题貌似看起来也很简单容易, 以至于不用去思考为什么,但是为什么最小负数绝对值总比最大正数多1 ,这个问题甚至有的工作几年的程序员都模棱两可,因为没有深入思考过,只知道书上这么写。于是,我不得不深入思考一下这个被许多人忽视的问题。原码、...原创 2018-05-07 11:56:51 · 4597 阅读 · 2 评论 -
《C语言深度解剖》--学习笔记
1、什么是定义,什么是声明什么是定义?什么是声明?它们有何区别? 举个例子: A)int i; B)extern int i;(关于extern,后面解释) 什么是定义:所谓的定义就是(编译器)创建一个对象,为这个对象分配一块内存并给它取上一个名字,这个名字就是我们经常所说的变量名或对象名。但注意,这个名字一旦和这块内存匹配起来(可以想象是这个名字嫁给了这块空间,没有要彩礼啊。^_^)...原创 2018-05-16 19:15:02 · 1119 阅读 · 0 评论