
01C语言基础知识
博雅勇士
90后,奋斗中,编程爱好者,Linux爱好者,嵌入式软件开发
展开
-
C语言中文网的资源的使用——链接索引
一、C语言中文网的好多模块是在首页找不到的,所以建立一个索引是非常有必要的1、首页 > C语言专题 链接:http://c.biancheng.net/c/pointer/这个模块贼拉好,将各个专题都详细的总结了一遍。2、首页 / C语言进阶教程 / 链接1:http://c.biancheng.net/cpp/u/cjinjie/C语言深度剖析...原创 2019-10-23 13:40:45 · 3642 阅读 · 0 评论 -
如何用#define宏定义多行函数
参考:链接:https://blog.youkuaiyun.com/shaodongju/article/details/51578186链接:https://blog.youkuaiyun.com/ljp1919/article/details/48491739在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。(1)首先,函数调用会带来额外的开销,它需要开辟一片栈空间,记录返回地址,将形参压栈,从函数原创 2020-06-02 13:50:38 · 2230 阅读 · 0 评论 -
*(argv[1]+1) 什么含义?——实践一下不就知道了
编写程序如下:#include<iostream>using namespace std;int main(int argc,char* argv[]){ cout<<"argc="<<argc<<endl; cout<<" *argv[0]="<<*argv[0]<<endl; cout<<" *argv[1]="<<*argv[1]<<endl原创 2020-05-21 11:18:21 · 827 阅读 · 0 评论 -
C语言——函数指针和回调函数的详解
参考博客:https://blog.youkuaiyun.com/weixin_39939425/article/details/90298435函数指针:指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针原创 2020-05-15 14:43:44 · 418 阅读 · 0 评论 -
第6章 数组第4篇——指针、数组作为函数参数传递的方式
文章目录函数参数的传递:(实参传给形参)博客01:指针作为函数参数传递一维数组博客02:说明:(1)专题的目录是按照C语言中文网中的知识点顺序排列的,方便自己整体的知识笔记的归纳总结。(2)本专题下面的博客全部用 专题六 开始(3)怕什么真理无穷,进一步有进一步的欢喜。——胡适、(4)参考:博文01:https://blog.youkuaiyun.com/qq_21834027/article/details/85705266博客02:https://blog.youkuaiyun.com/Laoynice/arti原创 2020-05-13 09:16:34 · 1070 阅读 · 0 评论 -
程序计时文章专题02——c语言clock()计时函数(能够精准到毫秒)
文章目录一、运用模板2、clock函数返回的是cpu时间,并不是秒数,真正的一秒钟可能包含若干个CPU时间,这个值通常是由宏CLOCKS_PER_SEC来定义,表示一秒中有CLOCKS_PER_SEC这么多个cpu时间二、案例:链表:数组:参考:https://blog.youkuaiyun.com/viafcccy/article/details/85255754一、运用模板#include<s...原创 2019-11-21 23:03:46 · 2217 阅读 · 0 评论 -
程序计时文章专题01——C语言中常用"计时"方法总结
文章目录1. time()2. clock() 常用,也比较好用,见另外博客介绍3. timeGetTime()4. GetTickCount()5. QueryPerformanceCounter()、QueryPerformanceFrequency()6. gettimeofday()7. RDTSC - 读取时间标签计数器参考:https://blog.csdn.ne...原创 2019-11-21 22:56:40 · 229 阅读 · 0 评论 -
C/C++中system()函数的用法详解
参考博文链接:https://blog.youkuaiyun.com/MyLinChi/article/details/52084980一、c语言中的system()函数主要用于发出一个DOS命令,该函数已经收录在标准c库中,可以直接调用。问题:什么是DOS命令?demo:#include <stdlib.h>#include <stdio.h>int main(void...原创 2019-11-16 10:59:23 · 4052 阅读 · 0 评论 -
第10章结构体01——结构体字节大小的计算
1、该篇笔记详见C提高笔记(传智播客)文章目录博文01:(常考面试题) 三步解决C语言中struct字节对齐问题,结构体的字节大小问题博文02:(课外阅读) C语言字节对齐、结构体对齐最详细的解释一、概念二、为什么要字节对齐三、正确处理字节对齐四、__attribute__选项五、什么时候需要设置对齐一、快速理解二、深入理解二.字节对齐对程序的影响:三.编译器是按照什么样的原则进行对齐的?四.如...原创 2019-11-13 10:46:37 · 1276 阅读 · 0 评论 -
第9章指针 第1篇——(1) 数组指针 (2)指针数组 (3)函数指针(4) 函数指针数组 ——定义以及它们之间区别
文章目录一、本文概要二、写在前面数组指针指针数组函数指针函数指针数组看下面三种定义,哪一个是函数指针的数组呢?指向函数指针数组的指针参考博文01:https://www.cnblogs.com/tp-16b/p/7860491.html一、本文概要1、学习 (1) 数组指针 (2)指针数组 (3)函数指针(4) 函数指针数组 的定义2、学习他们之间的区别。从中心词的角度去理解区别即可...原创 2019-11-09 10:28:52 · 152 阅读 · 0 评论 -
上海艾为电子面试题——C语言
1、定义一个宏来求一个数的绝对值:正确的:#define ABS(x) ( (x)>0?(x):-(x) )严谨一点,下面的写法都是错误的:(1)#define ABS(x) ( (x)>0?(x) : (-x) )这种情况错在把符号写在了括号里面,然后比如你传参2+3的时候就会出现错误。2、考察了指针数组、数组指针、函数指针、指针数组(数组的每一个元素是函数指针)的定义方法...原创 2019-11-08 20:15:06 · 902 阅读 · 3 评论 -
第7章 C语言函数01——(1)函数编写的注意事项超经典(面试题)(2)函数传参和返回值你全都会吗?(面试题)
前言因为C语言中文网中第7章是C语言函数,01表示这一章的第一篇记录文章。目录一、函数的三要素二、一些比较容易让人犯错的形参和实参的传递示例总结1、数组的作为参数时应该如何定义形参和传递实参呢?一、函数的三要素1、函数的三要素:函数名称,参数,返回值。2、有的人说:这是死记概念,没什么用。3、博雅觉得:我是从面试的过程中才悟出了这个作用,因为你编写编写一个函数的时候,功能除外,你首要考...原创 2019-11-01 18:17:57 · 228 阅读 · 0 评论 -
位运算专题——如何对某一位置0或者置1?
参考博文01:https://blog.youkuaiyun.com/hongjiujing/article/details/2178593一、前言学习本节课之前要先去学习位运算操作符的理论知识,注意运算符之间的优先级。二、如何对某一位置0或者置1?方法一:写成宏,方便移植#define setbit(x,y) x|=(1<<y) //将X的第Y位置1#define clrbit...原创 2019-10-25 09:39:40 · 24267 阅读 · 2 评论 -
(1)左值右值 和 (2)常见的面试题——哪些值不能做左值
参考:博文01:https://blog.youkuaiyun.com/ZLhy_/article/details/8349300博文02:https://blog.youkuaiyun.com/wangwei890702/article/details/20210241一、左值和右值的定义1、左值:C/C++语言中可以放在赋值符号左边的变量,即具有对应的可以由用户访问的存储单元,并且能够由用户去改变其值的量。...原创 2019-10-25 09:33:34 · 1436 阅读 · 0 评论 -
原码专题2——机器数 真值 原码 反码 补码
来源:博文01 https://blog.youkuaiyun.com/leng80919/article/details/52903588一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.比如,十进制中的数 +3 ,计算机字...原创 2019-10-24 22:47:26 · 760 阅读 · 0 评论 -
原码专题(1)——原码反码补码原理超详解
目录一、大学计算机入门开始讲起的原码反码补码你确定你懂了吗?一、大学计算机入门开始讲起的原码反码补码你确定你懂了吗?链接:https://blog.youkuaiyun.com/lllunaticer/article/details/841090111、两个事实事实1:说起来你可能不信,计算机的中央处理器CPU只会做加法(只有加法器),不会做减法。因此提出反码补码概念是为了让计算器可以通过做加法器...原创 2019-10-24 22:44:58 · 629 阅读 · 0 评论 -
第6章 数组第1篇——C语言中数组知识总结
说明:(1)专题的目录是按照C语言中文网中的知识点顺序排列的,方便自己整体的知识笔记的归纳总结。(2)本专题下面的博客全部用 专题六 开始(3)怕什么真理无穷,进一步有进一步的欢喜。——胡适、(4)参考:博文01:https://blog.youkuaiyun.com/huaijiu123/article/details/79897843一、知识点目录(自己想到什么再补充)【1】数组的分类...原创 2019-10-23 09:37:04 · 264 阅读 · 0 评论 -
第6章 数组第2篇——(1)数组的分类(2)数组的定义方式(3)数组的初始化方式(4)字符串数组的初始化方式
声明、定义和初始化概念之间的区别见另外的博客声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。在C++程序中,大多数情况下变量声明也就是变量定义,声明变量的同时也就完成了变量的定义,只有声明外部变量时例外。一、数组的三种定义方式参考链接:ht...原创 2019-10-23 09:26:42 · 183 阅读 · 0 评论 -
第6章 数组第3篇——(1)数组指针和指针数组 (2)定义数组指针变量的三种方式
一、参考博文01https://blog.youkuaiyun.com/GorgeousChou/article/details/102248189对指针数组和数组指针的概念,相信很多C程序员都会混淆。下面通过两个简单的语句来分析一下二者之间的区别,示例代码如下所示:二、数组指针和指针数组int p1[5];int (p2)[5];首先,对于语句“intp1[5]”,因为“[]”的优先级要比“”要...原创 2019-10-15 12:15:36 · 336 阅读 · 0 评论 -
一文彻底弄懂传入传出参数——超经典博文
参考:博文02:https://zhidao.baidu.com/question/389693262.html三、注意事项(博文02)C++中的参数,既可以当做传入参数,也可以当做传出参数,具体要看参数的数据类型。1)非指针,非引用类型:一定是当做传入参数;2)指针,引用类型:既可以当做传入参数;也可以当做传出参数;甚至可以同时是传入参数,也是传出参数。3)要看参数到底是哪种类型,要...原创 2019-10-23 22:05:23 · 3449 阅读 · 1 评论 -
Const,Const函数,Const变量,函数后面的Const的作用
参考:博文01:https://www.xuebuyuan.com/3267655.html一、一些理论知识1、看到const 关键字,C++程序员首先想到的可能是const 常量。这可不是良好的条件反射。如果只知道用const 定义常量,那么相当于把火药仅用于制作鞭炮。const 更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const 是constant 的缩写,“恒定不...原创 2019-10-23 22:08:07 · 644 阅读 · 0 评论 -
C/C++声明、定义、初始化、赋值
一、声明 - declaration声明:告诉编译器某个东西(变量或函数)的名称和类型,但略去细节。通俗的讲就是:告诉编译器我这个变量或函数是有的,我要用,只是现在不定义,你先不要给我报错,定义我后面补上。比如:extern int x; //对象object声明std::size_t numDigits(int number); //function声明class wid...原创 2019-10-22 09:47:00 · 782 阅读 · 0 评论 -
嵌入式C语言开发学习笔记 —— 内存陷阱
参考:博文01:https://blog.youkuaiyun.com/u012800825/article/details/98054638博文02:参考:《嵌入式系统高级C语言编程》 ,这本书有空好好看看1. 内存分配方式(1)从全局存储区(静态存储区)分配。何时分配:程序编译时生存周期:整个程序运行期间例子:全局变量、static变量(2)在栈(stack)上创建。何时分配:函数执行时...原创 2019-10-21 16:01:41 · 211 阅读 · 0 评论 -
c语言代码求解 —— scanf("%[^:]:%[^:]:%[^:\n]", a, b, c);
参考:博文01:https://zhidao.baidu.com/question/497242155339556684.html博文02:https://blog.youkuaiyun.com/qq_30007603/article/details/81164232一、在做题中,常常要求读入一行字符串,而这串字符里面可能有空格、制表符等空白字符,如果直接用%s是不可以的,于是有些人就想到用gets()...原创 2019-10-21 11:00:09 · 5863 阅读 · 0 评论 -
C程序中对时间的处理——time库函数详解
程序中需要包含的头文件:<sys/time.h> <time.h>一、在C语言中有time_t, tm, timeval等几种类型的时间1、time_ttime_t实际上是长整数类型,定义为:typedef long time_t; /* time value */2、timevaltimeval是一个结构体,在time.h中定义为:struct timeval...原创 2019-08-21 13:34:35 · 3128 阅读 · 0 评论 -
面试题——C语言的int类型与unsigned int运算的问题
参考:语言中文网和https://blog.youkuaiyun.com/gyyu32g/article/details/79089475C语言的int类型与unsigned int运算的问题1、signed int 可以简写成int ,unsigned int 一般不做简写。2、在不同类型的混合运算中,编译器也会自动地转换数据类型,将参与运算的所有数据先转换为同一种类型,然后再进行计算。转...原创 2019-10-10 22:40:52 · 1258 阅读 · 0 评论