随笔分类 - 我的C
摘要:1、strlen()求字符串长度 1 //模拟实现strlen函数 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 #include<assert.h> 6 int my_strlen1(const char* str)
阅读全文
摘要:1.函数atoi atoi (表示 alphanumeric to integer)是把字符串转换成整型数的一个函数。广泛的应用在计算机程序和办公软件中。atoi( ) 函数会扫描参数 nptr字符串,跳过前面的空白字符(例如空格,tab缩进等)。 原型:int atoi(const char *n
阅读全文
摘要:1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 1.1static的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数
阅读全文
摘要:1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性。 即它所修饰的变量不能被修改。 2.修饰局部变量 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量初始化,否则之后就不能再进行赋值了,而且编译器也不允许不赋初值的写法: 在C
阅读全文
摘要:一、多态的主要特点 1、继承体系下。继承:是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性 和行为,并能扩展新的能力,已有类被称为父类/基类,新增加的类被称作子类/派生类。 2、子类对父类的虚函数进行重写。 3、虚表。 在面向对象语言中,接口的多种不同现方式即
阅读全文
摘要:1、什么是栈帧? 栈帧也叫过程活动记录,是编译器用来实现函数调用过程的一种数据结构。C语言中,每个栈帧对应着一个未运行完的函数。从逻辑上讲,栈帧就是一个函数执行的环境:函数调用框架、函数参数、函数的局部变量、函数执行完后返回到哪里等等。栈是从高地址向低地址延伸的。每个函数的每次调用,都有它自己独立的
阅读全文
摘要:1、程序内存的分配 一个由C/C++编译的程序占用的内存分为以下几个部分:1)栈区(stack) — 由编译器自动分配释放 , 存放为运行函数而分配的局部变量、 函数参数、 返回数据、 返回地址等。 其操作方式类似于数据结构中的栈。2)堆区(heap) — 一般由程序员分配释放, 若程序员不释放,
阅读全文
摘要:被隐藏了的过程 现如今在流行的集成开发环境下我们很少需要关注编译和链接的过程,而隐藏在程序运行期间的细节过程可不简单,即使使用命令行来编译一个源代码文件,简单的一句"gcc hello.c"命令就包含了非常复杂的过程。 在Linux系统下使用gcc编译程序时只须简单的命令: $gcc hello.c
阅读全文
摘要:有趣的C语言代码 看一下这段代码输出的是什么 C语言的特色 C语言是一个有结构化程序设计、 具有变量作用域( variable scope) 以及递归功能的过程式语言。 C语言传递参数均是以值传递( pass by value) , 另外也可以传递指针( a pointerpassed by val
阅读全文