- 博客(9)
- 收藏
- 关注
原创 typedef是将type变换为def的映射
对于一个变量或函数,其类型就是声明过程去掉变量名或函数名剩下的东西,如int a,a的类型就是去掉int后剩下的东西int,对于声明 int (*p[10])[5],其类型就是int (*[10])[5]。其类型是int (*[10])[5],或者说p是一个内含10个指针的数组,每个指针指向一个内含5个int型元素的数组。fc p 等价于 fb p[10] 等价于 fa *(p[10]) 等价于 int (*p[10])[5],“typedef 声明(pf);”就等价于“声明(a);
2023-12-01 10:25:23 394 1
原创 C语言函数名:取指映射的不动点
对于函数fun,由于函数名就是其地址,因此fun=*fun=**fun=…*fun,故fun(…),曾经这东西是有争议的,但最终妥协并保留了这种操作。
2023-12-01 09:41:27 357 1
原创 梅花易数C语言实现(六十四卦卦辞用的是python)用了python
#include <stdio.h>#include <stdlib.h>#include <time.h>const char xiantian[8][60]={"乾","兑","离","震","巽","坎","艮","坤"};const char baxiang[8][4]={"天","泽","火","雷","风","水","山","地"};const char htfw[8][8]={"西北","正西","正南","正东","东南","正北","东北",
2022-01-30 12:35:39 4043 1
原创 力扣118 杨辉三角C实现
不浪费一丝一毫的空间/** * Return an array of arrays of size *returnSize. * The sizes of the arrays are returned as *returnColumnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free(). */int** generate(int
2022-01-06 10:43:06 801 2
原创 CRC校验码C语言实现
时间与空间不可得兼。。我选择空间。。空间复杂度还是很低的。。#include <stdio.h>int shi(int n){ return (n>0)?shi(n=n>>1)+1:0; }void turnb(int n){ if(n!=0){ turnb(n>>1); printf("%d",n&1); }}int convertBinaryToDecimal(long
2022-01-05 18:29:32 1226
原创 C实现多项式F_2上的阶(线性反馈移位寄存器)
C语言求多项式F_2上的的阶F_2:{0,1}二元域求阶的函数反馈多项式的阶等于线性反馈移位寄存器不同初态输出序列的最大周期(类似最小公倍数)。int getlev(const int n){ int len=shi(n); int ans=len; int l=1<<len-1; int reg,midlen; reg=n^l; if(reg==1)return len-1; for(;;){
2022-01-03 09:10:35 881
原创 双重指针之malloc
malloc函数的作用是动态地分配一段连续的空间,并返回这块空间的首地址int *p;//*p=3;//(error)p=(int*)malloc(sizeof(int));*p=3;
2021-10-30 15:26:19 881
原创 用C改写一个高速strlen
int lenstr(char*s){ if(!s[0])return 0; int i,j; for(i=1;s[2*i];i*=2); j=i*2; while(i+1<j) { i=s[(i+j)/2]?(i+j)/2:i; j=s[(i+j)/2]?j:(i+j)/2; } return j;} 用C搞一个快一点的strlen
2021-10-26 15:42:14 117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人