摘要:typedef与#define有些相似: (1)例如 char* pa,pb; //声明一个指向字符变量的指针,和一个字符变量 typedef char* PCHAR; PCHAR pa,pb; //定义两个字符型指针; (2)用来少写一个struct 在c语言中用struct声明新的对象时,必须带
阅读全文
摘要:位转换 位 8 7 6 5 4 3 2 1 数 v8 v7 v6 v5 v4 v3 v2 v1 转换后: 位 8 7 6 5 4 3 2 1 数 v1 v2 v3 v4 v5 v6 v7 v8 unsigned char bit_reverse(unsigned char c) { unsigned
阅读全文
摘要:给定两个二叉树,编写一个函数来检验它们是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。 示例 1: 示例 2: 示例 3: bool isSameTree(struct TreeNode* p, struct TreeNode* q) { if(p == NULL &&
阅读全文
摘要:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素
阅读全文
摘要:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode
阅读全文
摘要:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 int climbStairs(int n) { int pre[] = {0,1,2}; if(n <= 2) return pre[n<0?0:
阅读全文
摘要:实现 int sqrt(int x) 函数。 计算并返回 x 的平方根,其中 x 是非负整数。 由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。 int mySqrt(int x) { int i = 0; int max =46341; int temp; while(i < max)
阅读全文
摘要:给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 char* addBinary(char* a, char* b) { int i = strlen(a); int j = strlen(b); int len = i > j?i:j; char *
阅读全文
摘要:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 /** * Return an array of size *returnSize. * Note: The ret
阅读全文
摘要:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例:
阅读全文
摘要:1、#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER) (include/linux/stddef.h) 1.1 功能: 返回结构体TYPE中MEMBER成员相对于结构体首地址的偏移量,以字节为单位。 1.2 解析: 此类复杂表
阅读全文
摘要:Static翻译出来是“静态”“静止”的意思,在C语言中的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数。经static修饰过后的变量或者函数的作用域或者存储域会发生变化,而由static修饰的变量在初始值方面也会表现出static关键字的优势。想知道经static修饰
阅读全文
摘要:https://www.cnblogs.com/getyoulove/p/3656184.html Static翻译出来是“静态”“静止”的意思,在C语言中的意思其实和它的本意差不多,表示“静态”或者“全局”的意思,用来修饰变量和函数。经static修饰过后的变量或者函数的作用域或者存储域会发生变化
阅读全文
摘要:一直对堆栈的使用以及全局变量、静态全局变量、局部变量、静态局部变量、初始化的全局变量、未初始化的全局变量、初始化的局部变量、未初始化的局部变量理解的不是很清楚,今天抽个时间来总结以下这方面的知识: 1.首先心中要有一个内存分布图,最上面肯定是命令行和环境参数、往下依次是栈、堆、bss段、数据段、代码
阅读全文
摘要:一、malloc()和free()的基本概念以及基本用法: 1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 关于分配失败的原因,应该有多种,比如说空间不足就是一
阅读全文
摘要:、链接地址和运行地址。 ①运行地址,顾名思义就是程序运行的时候的地址,也就是你用工具将代码下载到RAM的那个地址,也叫加载地址。 ②链接地址,由链接脚本指定的地址。为什么需要链接脚本指定地址呢?你想一下,在c语言编程中,当我们需要调用一个A函数的时候,编译器是怎么找到这个A函数?编译器肯定是知道它被
阅读全文
摘要:1.在一个宏定义中,编译器可以检测到绝大多数由多余符号所导致的错误。但不幸的是,编译器会将每一卒使用这个宏的地方标记为错误,而不会直接找到错误的根源——宏定义本身,因为宏定义已经被预处理器删除了。 2.带参数的宏,[#define 指令-带参数的宏] #define 标识符 (x) 替换列表 其中x
阅读全文
摘要://example #include<stdio.h> union var{ long int l; int i; }; /*定义一个联合体,与结构体较类似*/ main(){ union var v; v.l = 5; printf("v.l is %d\n",v.i); v.i = 6; pri
阅读全文
摘要:break只对应for循环,while循环,switch case分支。 (a>b)?y:n 如果A大于B,那么选择Y的结果,如果A小于B,那么选择N的结果。 ^在c语言中代表的是按位异或 在c语言中\b代表的输出一个退格。\n代表的时输出一个回车。
阅读全文