C编程
C语言学习过程中的难题及重点,包含可能的一些项目实战分享。
Do Always Learning
按部就班就是伟大,加油!
展开
-
奇偶校验 & 统计整数转换为二进制后含多少个1
统计整数转换为二进制后含多少个1 的问题整数右移但不适用负数,当x为负数时,一直进行右移运算,最终这个数字会编程0XFFFFFFFF,从而陷入死循环int getNumber(int x){ int count = 0; while(x) { count += x & 1; x >>= 1; //右移 }}整数 与 左移的1 相&int getNumber_1(int x){ i原创 2021-06-09 18:05:03 · 155 阅读 · 0 评论 -
数组指针和指针数组、常量指针和指针常量
概念1:数组指针 :指向数组的指针 本质是指针数组指针:int (*p)[10]指针数组 :存放指针的数组 本质是数组指针数组:int *p [10]参考链接概念2(指针)和 const(常量) 谁在前先读谁 ;’*'象征着地址,const象征着内容;谁在前面谁就不允许改变。指针常量:指向的地址不可以重新赋值,但内容可以修改,必须初始化,地址跟随int a = 10 ; int * const p = &a;常量指针:指向的地址可以改变,但指向的内容不能修改,内容的改原创 2021-04-21 13:56:28 · 248 阅读 · 0 评论 -
利用栈来实现二进制转十进制数
栈创建栈压栈出栈销毁栈应用介绍先利用栈将二进制数从左至右存储再利用出栈将二进制数从右至作依次弹出返回计算得到的十进制数代码#include <iostream>using namespace std;typedef int ElemType;#define STACK_INIT_SIZE 100#define STACKINCREMENT 50typedef struct{ ElemType* base; ElemType* t原创 2021-04-15 16:14:47 · 913 阅读 · 0 评论 -
while(--i) 和 while(i--) 区别
基础理论:while(i–) 先执行while判断,再自减while(–i) 先自减,再执行while判断是否循环。#include <iostream>using namespace std;int main(){ int num1 = 3,num2 = 3,num3 = 3; int i = 0;//执行1次 while (num1--) { i++; cout << "while(num--)已执行" << i << "原创 2021-04-14 18:24:50 · 1363 阅读 · 0 评论 -
双向循环链表
文章目录双向循环链表插入操作删除操作案例程序参考双向循环链表插入操作s->next = p;s->prior = p->prior;p->prior->next = s;p->prior = s;删除操作p->prior ->next= p->next;p->next ->prior = p->priof;free(p); //释放内存空间总结:双向链表可以有效提高算法的时间性能,用空间换取时间案例原创 2021-04-14 16:36:26 · 107 阅读 · 0 评论 -
单循环链表练习
文章目录主要内容CircleList.h 文件CircleList.cpp 文件总结参考主要内容单循环链表学习,包含以下内容:1、创建循环链表2、 插入 结点3、 删除 结点4、显示链表元素5、返回元素位置6、清空链表元素CircleList.h 文件#pragma once#include <iostream>using namespace std;typedef struct CLinkList{ int data; struct CLinkLi原创 2021-04-13 21:34:42 · 138 阅读 · 0 评论 -
可变参数列表va_list
可变参数列表是通过宏来实现的,这些宏定义在stdarg.h头文件中,执行步骤如下:参数列表中的省略号,代表此处可能传递数量和类型未确定的参数首先在函数声明一个 va_list 类型的变量value,用于访问参数列表的未确定部分,这个变量是指向参数的指针用宏 va_start 初始化定义的va_list类型的变量,宏va_start的第1个参数是 va_list 变量 value 的名字,第2个参数是省略号前最后一个有名字的参数,初始化过程把 va_list 类型的变量 value 指向可变参数部分的原创 2020-08-10 13:04:15 · 229 阅读 · 0 评论 -
C语言实现中位值平均滤波算法
中位值平均滤波算法**基本原理:**取一组数据,去掉其中数据中的最大值和最小值,对剩余的数据求平均值转载/*** 中位值平均滤波* @param pData:没有滤波的数据 * @param nSize:数据大小 * @return:滤波数值*/unsigned short MedianFilter(unsigned short* pData,int nSize){ unsigned short max,min; int sum; if(nSize>2)原创 2020-07-31 10:06:41 · 2722 阅读 · 0 评论 -
C语言 常见数据转换函数
转载:链接目标公众号:大鱼机器人数据转换函数字符串转十六进制十六进制转字符串字符串转十进制字符串带负号字符串不带负号字符串转为浮点数十进制转字符串u8 u32 转换大端、小端转换转为大端字符串转十六进制void StrToHex(char *pbDest, char *pbSrc, int nLen){ char h1,h2; char s1,s2; int i; for (i=0; i<nLen/2; i++) { h1 = pbSrc[2.转载 2020-07-29 13:31:52 · 971 阅读 · 0 评论 -
C语言 函数返回字符串的方法
函数返回字符串方法字符串指针作为函数形参传入,并返回该指针使用malloc函数动态分配(注意内存释放)返回一个静态局部变量 static使用全局变量strcpy函数用法字符串指针作为函数形参传入,并返回该指针#include <stdio.h>#include <string.h>#include <stdlib.h> char * fun(char *p){ char *eg="STM32"; strcpy(p,eg); return原创 2020-07-28 13:53:50 · 4140 阅读 · 0 评论 -
void和void指针的用法
void 的作用对函数返回的限定,函数不需要返回值时 void fun(int a,int b)函数参数的限定,函数不需要形参时 int fun(void)void *指针(无类型指针)void 指针可以指向任意类型的数据,任意类型的指针都可以对void指针赋值(“无类型”可以包容“有类型”)int *A;void *p;p=A;void 指针赋值给其他类型的指针,需要强制类型转换(“有类型”并不包容“无类型”)int *A;void *p;A=(int *)原创 2020-07-28 13:28:27 · 221 阅读 · 0 评论