![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Evolution-C
文章平均质量分 53
驽马Numa
这个作者很懒,什么都没留下…
展开
-
带你清晰了解#define和宏
文章目录#define的简单使用#define的原理#define定义宏#define的替换规则#和## #define的简单使用 语法: #define name stuff 对于#define的基本语法理解起来其实并不困难, 无非就是把name替换成stuff罢了。 但是,在这里,依然有一些需要我们注意的点。 首先,我们长期编写程序,都已经习惯了在语句后面加上; 其实,#define的后面是不需要加 ; 的。 我们可以看到,#define是不需要分号的,这样,我们可以很好的编译并且通过我们的程序原创 2022-04-10 18:23:37 · 1224 阅读 · 3 评论 -
leetcode面试题17.04消失的数字
int missingNumber(int* nums, int numsSize){ int judge=0; int k=0; int sum=-1; for(int i=0;i<numsSize;i++) { k=nums[i]; k=abs(k); if(k==numsSize) { judge=1; } else {原创 2022-03-30 23:08:22 · 196 阅读 · 9 评论 -
leetcode 693. 交替位二进制数
bool hasAlternatingBits(int n){ int k=0; int judge=(n%2)^1; while(n) { k=n%2; n>>=1; if(k==judge) return false; judge=k;; } return true; }原创 2022-03-30 22:32:24 · 82 阅读 · 0 评论 -
KMP算法实现以及next数组优化(C语言代码)
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<assert.h> //int BF(const char* s1, const char* s2) //{ // int i = 0; int j = 0; // int len1 = strlen(s1); // int len2 = strlen(s2); // for (i = 0; i < len1;) // {原创 2022-03-25 19:43:13 · 1396 阅读 · 10 评论 -
一道面试题帮你深入了解指针(C语言)
代码块如下,不过直接看图片可能会更清晰一点(0V0); int main() { char* c[] = { "ENTER","NEW","POINT","FIRST" }; char** cp[] = { c + 3,c + 2,c + 1,c }; char*** cpp = cp; printf("%s\n", **++cpp); printf("%s\n", *-- * ++cpp + 3); printf("%s\n", *cpp[-2] + 3); printf("%s\n", .原创 2022-03-24 09:46:05 · 2182 阅读 · 6 评论 -
帮你理解回调函数,模拟实现库函数qsort(冒泡排序)
回调函数 回调函数就是一个通过“函数指针”调用的函数。 如果你把函数A的指针(即地址)传给一个函数B,当这个指针被用来调用其所指向的函数时,那么,这个函数A就是回调函数 是不是很绕很难以理解?没关系,我们举一个小小的例子,来帮你理解回调函数。 我们知道,有一个很方便的排序库函数qsort,我们在刷题的时候常常会用到,但实际上这个库函数,第四个调用的参数,便是回调函数的指针(即地址)。 我们从msdn中,可以看到,qsort的具体结构 void qsort( void *base, size_t num原创 2022-03-14 13:39:23 · 758 阅读 · 10 评论