C
文章平均质量分 73
very_happy
爱编程
展开
-
Linux 库文件
静态库在链接时,会将依赖的库编到二进制中,产生的二进制文件比较大。编译构建静态库主文件编译主文件。原创 2023-03-09 10:21:19 · 94 阅读 · 0 评论 -
C++容器
容器容器分为关联容器和顺序容器。关联容器set的使用一个简单的例子:#include<iostream>#include<set>using namespace std;int main(){ set<int> s; s.insert(1); s.insert(4); s.insert(9); for (set<int>::iterator it = s.begin(); it != s.end原创 2020-12-23 19:40:34 · 136 阅读 · 1 评论 -
C语言知识
const关键字const int *p = &i; // 指针p指向的内容不能通过p被修改int * const p = &i; // 指针p本身的内容无法被修改#include <stdio.h>int main(){ int i = 123; const int *p = &i; // 等价于 int const *p = &i; //*p = 789; // 错误,指针p指向的内容不能通过p被修改 p原创 2020-08-09 20:31:22 · 134 阅读 · 0 评论 -
C语言常用库函数
参考:https://www.runoob.com/size_t strlen(const char *str)计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。char *strcpy(char *dest, const char *src)把 src 所指向的字符串复制到 dest。 需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出...原创 2020-03-01 15:01:44 · 197 阅读 · 0 评论 -
【程序员的自由修养】疑问汇总
问题一:【2.4 模块拼接 -- 静态链接】 一节最后一段中,讲到链接之后,变量var的地址确定下来为0x1000。为什么链接之后var的地址就确定了呢?自问自答: 【1.5 内存不够怎么办】小节中讲到了虚拟内存,是因为可执行程序的虚拟内存都是从0到某个最大值,所以在链接的时候var的虚拟内存其实已经确定了。程序在运行过程中,var的虚拟内存是不会改变的,变更的只是物理内存。因此在链接的...原创 2018-07-29 15:32:54 · 153 阅读 · 0 评论 -
C语言实现快排
void Qsort( int * p_int, int ll, int hh ){ //对地址为p_int+ll 和 p_int+hh 之间的元素实现快排 if( hh > ll + 1 ) { //当有三个或以上元素时 int low = ll + 1; //以ll处的元素为枢纽 int high = hh; //最高索引 while(原创 2013-11-14 16:40:35 · 639 阅读 · 0 评论 -
指针的低级错误!铭记!
typedef struct LNode{ int data; struct LNode * next;}LNode, * LinkList;void CreateList1( LinkList &L, int n ){//建立n个元素的链表L L = ( LNode * ) malloc( sizeof( LNode ) ); LinkList L1 = L -> next;原创 2013-07-15 16:20:41 · 433 阅读 · 0 评论 -
C/C++中include
刚开始学习C语言时候就知道include指令,但是对其含义的理解很多时候是模糊的,其精确含义如下(摘自C++语言程序设计第三版): 指令include可以有两种书写方式。#include表示按照标准方式搜索要嵌入的文件,该文件位于C++系统目录include子目录下,一般要嵌入系统提供的标准文件时采用这样的方式,如对标准头文件iostream的包含。另一种书写为#include"文件名",原创 2013-07-07 16:00:53 · 608 阅读 · 0 评论 -
解读:《C语言解惑》中的难解的指针
在C语言中,指针和数组有着千丝万缕的关系,也是很核心的内容之一,同时也是最难理解的部分。在 《C语言解惑》一书中有一道关于指针的题目,作者说只要能正确地解答之,便说明已经全面地掌握了C语言中指针的用法。让我们先看看源代码:int main() { char * c[] = { "ENTER", "NEW",原创 2013-05-24 22:41:45 · 1602 阅读 · 0 评论 -
层序输出二叉树
常见的二叉树输出方式是先序,中序和后序;层序输出相对并不常见,先说说我的思想。 二叉树的定义是树中的每个结点至多有两个子树并且有顺序,分别称为左右子树。首先,构造一指针数组并将根节点的地址存入其中(下标为0);若此结点左孩子非空,则将左孩子的地址存入数组(下标为1);同理,若此结点右孩子非空,则将右孩子的地址存入数组(下标为2);对左右孩子施以和根结点同样的动作,重复以上步骤,将会得到相应原创 2013-04-27 16:38:27 · 2066 阅读 · 0 评论 -
C链表练习时对指针的深刻理解
在做有关链表的练习时,遇到了链表内存错误的问题,最后解决了,在此分享给大家,错误及不足之处,还望大牛们指正。 所作的就是很简单地创建一个链表,并输出其元素,代码如下: 头文件 _List_H.h #include#include#ifndef _List_Htypedef int ElementType ;struct Node;ty原创 2013-04-05 19:25:24 · 469 阅读 · 0 评论