1, 2); //3 double ret2 = add(5.5, 4.3);//9.8 cout << ret1 << " " << ret2 << endl; return 0; } 为什么C语言不支持函数重载...因为在链接阶段生成符号表的时候,C语言对函数取名的时候,只会拿函数名进行取名,如果有函数重载的话,没办法区分函数的不同。...而C++在取名的时候,是将函数名和参数类型的首字符结合起来对函数的取名,这样就可以区分函数的不同了。 拓展:说说函数重载、函数重写、函数重定义区分: 在作用域中:函数重载在需要在同一个作用域中。...cout << rb + 1 << endl;//7.6 cout " 0055FA74--每次编译运行都会变 说一说引用的场景
C/C++会把常量字符串存储到单独的一个内存区域,当几个指针。指向同一个字符串的时候,他们实际会指向同一块内存。但是用相同的常量字符串去初始化不同的数组的时候就会开辟出不同的内存块。...{} int main() { int arr[3][5] = {0}; test(arr); } //总结:二维数组传参,函数形参的设计只能省略第一个[]的数字。
前言 指针对于C语言非常重要,因为它是C语言的重要特性之一。 指针可以帮助程序员更高效地处理内存,允许程序访问和修改内存中的数据。...因此,熟练掌握指针的用法是C语言程序员必备的基本技能,虽然非常重要,但对于指针的运用以及理解来说,在学习C语言的初期可是让不少程序员犯了难。 新手学习指针的难点有以下几个方面: 1....本文重点 关于指针的概念及运用的重点太多,我们分成两部分进行讲解,本文将偏重解释指针的含义及最基本的运用 1....在C++和类似的语言中,解引用操作符为 `*`,其作用是将指针变量前面加上 `*` 后,可以访问该指针所指向的内存地址中存储的值。...*pi = 0; //重点在调试的过程中观察内存的变化。 return 0; } 总结: 指针的类型决定了,对指针解引用的时候有多大的权限(能操作几个字节)。
这些文件可以在不同的编程语言中编写,如C++、Java、Python等。包括源程序文件(后缀为.c),目标文件(windows环境后缀为.obj),可执行程序(windows环境,后缀为.exe)。...文件缓冲区 我们先来介绍一下ANSIC这个标准: ANSIC 是 C 语言的一种标准化版本,是由 ANSI(American National Standards Institute,美国国家标准化协会...这个标准于 1989 年发布,主要为了解决 C 语言在不同编译器和计算机上的兼容性问题。 ANSIC 定义了 C 语言的语法、数据类型、函数库等,同时还规定了 C 语言编译器和标准库的行为。...ANSIC 的发布对于 C 语言的发展有着深远的影响,使得 C 语言成为了一种可以跨平台使用的编程语言,并且促进了 C 语言在工业界和学术界的广泛应用。...ANSIC 目前已经被多种编程语言所采纳,包括 C++、Java、Python 等。同时,ANSIC 的标准也在不断地更新和修订,例如 C99 和 C11 等。
简易实现计算器 相信各位在学习C语言的初期都尝试过实现一个加减乘除的简易计算器,但在学习完函数指针后,我们可以更加简单和高效的实现。...关于回调函数的例子,最典型的是qsort函数 qsort函数是C语言标准库中的一个函数,用于对数组进行快速排序。使用它时,需要传入四个参数: void* base:是需要排序数组的起始地址。...下面是冒泡排序的C语言实现代码: void bubble_sort(int arr[], int len) { int temp; for (int i = 0; i < len - 1...再来,我们介绍一下void* 的作用 void* 是C语言中的一个指针类型,通常称之为“无类型指针”。它可以指向任意类型的数据,因为所有的类型都可以通过指针进行访问和操作。...在C语言中,void* 经常用于函数参数和返回值的类型。例如,如果一个函数需要处理不同类型的数据,可以使用 void* 作为参数类型,然后在函数内部使用类型转换将参数转换为所需的类型。
我之前发的扫雷和三子棋离不开数组的信息储存,今天我来总结下我学的数组这一章节的内容。 1....3.1 数组下标 int arr[ 10 ] = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 }; 在C语言中数组的访问提供了⼀个操作符 [] ,这个操作符叫...5. sizeof 计算数组元素个数 sizeof 中C语言是⼀个关键字,是可以计算类型或者变量大小的,其实 sizeof 也可以计算数组的 大小。
C语言中函数的分类 函数分为库函数和自定义函数 C语言是结构化的程序设计语言 一般有 -顺序结构 -选择结构 -循环结构 比如求和代码 中 定义了add函数 Add 执行 x+y=z 之后 返回 z结果...知识点 布尔类型 在C语言中 最开始就 char short int long longlong float double 是内置类型 在C语言最初设计中就有 但在C99中引入了布尔类型 也就是bool
我学习的第一门编程语言是Java,所以之前一直没有系统学习过C语言。这篇文章主要就是我学习过程的一个总结,方便以后复习查看。 一....C语言设计的初衷是将其作为程序员使用的一种编程工具,因此,其主要目标是成为有用的语言。 在过去40多年里,C语言已成为最重要、最流行的编程语言之一。它的成长归功于使用过的人都对它很满意。...过去20多年里,虽然许多人都从C语言转而使用其他编程语言(如,C++、Objective C、Java等),但是C语言仍凭借自身实力在众多语言中脱颖而出。...虽然这些年来C++、python和JAVA非常流行,但是C语言仍是软件业中的核心技能。在最想具备的技能中,C语言通常位居前十。特别是,C语言已成为嵌入式系统编程的流行语言。...C语言数据类型和关键字 基本数据类型 C语言的基本数据类型为:整型、字符型、实数型。
八、其它考试重点 文件的复习方法: 把上课时候讲的文件这一章的题目要做一遍,一定要做,基本上考试的都会在练习当中。...2)strlen 和 sizeof的区别也是考试的重点; 3)define f(x)(x*x) 和 define f(x) x*x 之间的差别。...这里一个C语言程序是有两个文件组成,分别是no1.c, no2.c。...例如:no2.c就没有。 头文件一定是以.h结束的。 这句话错了。例如:no1.c中就是#include”no2.c”以.c结尾的。...15)字符串的赋值 C语言中没有字符串变量,所以用数组和指针存放字符串: 1、char ch[10]={“abcdefgh”}; 对 2、char
while()循环 do while循环中的break和continue goto语句 关机程序——goto语句 结语 ---- 前言 大家好啊,本篇博客将介绍分支循环语句部分,从0到1,如果你还是C语言的初学者...开始之前,我们先来浅说一下语言的定义:我们不妨理解为是对计算机的指令 C 语句可分为以下五类: 1. 表达式语句 2. 函数调用语句 3. 控制语句 4....这就是选择,说了这么多,其实就是在讲选择的定义,那C语言又是如何去表示的呢? if语句和swtich语句。...在C语言中,我们要用到逻辑运算符&&来表示并且,这是我们需要注意到的地方,也是初学错的地方,我们要多加注意!....== 和 =的区别 开始之前,我们先来了解一下C语言选择的真假性: 如果表达式的结果为真,则语句执行。 在 C 语言中如何表示真假? 0表示假,非0表示真。
前言 本篇博客紧接着指针总结1来总结下数组和指针的关系,让我们一起来看一下数组与指针的“爱恨情仇”。 欢迎关注个人主页:小张同学zkf 若有问题,评论区见 1....这一部分指针已总结完,下一篇指针博客见。
C语言循环的嵌套 一个循环体内又包含另一个完整的循环结构,称为循环的嵌套。内嵌的循环体中还可以嵌套循环,这就是多层循环。...C语言循环的比较 3种循环语句都可以用来处理同一问题,一般情况下它们可以相互代替。...C语言改变循环的状态 1、C语言用break语句提前终止循环 一般形式 break; 其作用是使流程跳到循环体之外,接着执行循环体下面的语句。...以上,如果你看了觉得对你有所帮助,就给小林点个赞,分享给身边的人叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~ C语言学习路线 C语言开发工具 VC6.0、Devc++、VS2019使用教程...100道C语言案例源码请去公众号:C语言入门到精通
结构体的内存对齐(重点) 回想一下数组在内存中是连续存放的,那我们就会提出一个疑问,结构体难道也会是这样的吗?...如果你还不理解上面的表述,那么请看下面的图解: 1.1.1 offsetof 计算结构体成员的偏移量 C语言其实也提供了函数给我们计算出每个结构体成员相较于起始位置的偏移量。...1.2.1 计算内存对齐的几个实操例子 第一个: 计算下面结构体的大小 struct S1 { char c1; int i; char c2; }; 根据规则的第一条: 结构体的第⼀个成员对齐到和结构体变量起始位置偏移量为...0的地址处 也就是说变量c1从偏移量为0的地方开始存放。...struct S2 { // 成员大小 VS默认的对齐数 对齐数(两者的较小值) char c1; // 1 8 1 char c2;// 1 8 1 int
前言 说起C语言中令人头疼的特性,相信大多数人都首先会提指针。 指针非常强大,但也非常不容易驾驭。不知道有多少人因为指针想大声对C语言高歌一曲”爱恨就在一瞬间“。...这个系列的文章试图对指针方面常犯的错误做个梳理总结,帮助大家驯服这个C语言的野马。 指针问题本质上可以分为两类,一类是读不属于自己的内存,一类是写不属于自己的内存。
这篇介绍C语言里函数的定义、子函数的使用。接着介绍变量的作用域,定义全局变量、静态变量、只读变量、变量初始化等等。...定义一个函数 int func(int a,int b) { } (函数的形参列表,....) { 函数代码主体部分; } : 返回值类型可以是C语言支持任何类型...12.34,56.78); //形参传入之后,会转为整型 printf("a=%d\n",a); return 0; } //定义一个函数 int func(int a,int b) { int c;...c=a+b; return c; //给调用者返回结果 } 二、函数练习作业 (1)编写一个判断某一年是否是闰年的函数。...且不能整除100 或者能整除400 ) #include int func_year(int year); //声明函数 int main(void) { int year; //c89
前言 本篇博客继续总结有关指针的知识 欢迎关注个人主页:小张同学zkf 若有问题 评论区间 1....相反,3和4他们指向同一个常量字符串,C/C++会把常量字符串存储到单独的一个内存区域,当几个指针指向同一个字符串的时候,他们实际会指向同一块内存。所以3和4是一样的。 2....过去我们有一个二维数组的需要传参给一个函数的时候,我们是这样写的: #include void test(int a[3][5], int r, int c) { int i = 0...如下图: 总结:二维数组传参,形参的部分可以写成数组,也可以写成指针形式 4. 函数指针变量 4.1 函数指针变量的创建 什么是函数指针变量呢?...根据前面总结的整型指针,数组指针的时候,我们的类比关系,我们不难得出结论: 函数指针变量应该是用来存放函数地址的,未来通过地址能够调用函数的。 那么函数是否有地址呢?
内联函数定义 inline关键字是C99标准的型关键字,其作用是将函数展开,把函数的代码复制到每一个调用处。这样调用函数的过程就可以直接执行函数代码,而不发生跳转、压栈等一般性函数操作。...为什么需要内联函数 在C语言中,如果一些函数被频繁的调用,不断地用函数入栈,即函数栈,则会造成栈空间或者栈内存的大量消耗,为了解决这个问题,特别的引入了inline关键字,表示为内联函数。...宏只是做字符串替换操作,而不了解语句的含义 是否一定被展开 不一定,是否展开由编译器决定 一定,只要使用了宏就可以保证被展开 接口封装 是 否 是否支持调试 是 否 总结 内联函数相比宏函数,会进行语法检查
C语言中给地址起了新的名字叫:指针。...指针变量和地址 2.1 取地址操作符(&) 理解了内存和地址的关系,我们再回到C语言,在C语言中创建变量其实就是向内存申请空间 #include int main() { int a...C语言中其实也是一样的,我们只要拿到了地址(指针),就可以通过地址(指针)找到地址(指针)指向的对象,这里必须学习一个操作符叫解引用操作符(*)。...NULL 是C语言中定义的⼀个标识符常量,值是0,0也是地址,这个地址是无法使用的,读写该地址会报错。...指针第一部分总结完,有什么问题各位大佬多评论
在C语言中,stdin stdout stderror 三个标准输入输入,stdou输出到屏幕有缓冲,stderror 输出的屏幕没有缓冲。这三个标准输入输出相当于三个设备文件,可以读写。...%d",a,b,c,d) 等同strok(); 此时a=192 b=168 c=1 d=102 scanf将标准输入的字符串,格式化后,送到变量中
最 好的安排是在某个相关的 .c 文件中定义, 然后在头文件 (.h) 中进行外部声明, 在需 要使用的时候, 只要包含对应的头文件即可。...定义变量的 .c 文件也应该包含该头 文件, 以便编译器检查定义和声明的一致性。这条规则提供了高度的可移植性: 它和 ANSI C 标准一致, 同时也兼容大多 数 ANSI 前的编译器和连接器。...Unix 编译器和连接器通常使用 “通用模式” 允许 多重定义, 只要保证最多对一处进行初始化就可以了; ANSI C 标准称这种行为为 “公共扩展”, 没有语带双关的意思。...特 别是, 永远不要把外部函数的原型放到 .c 文件中: 通常它与定义的一致性不能得 到检查, 而矛盾的原型比不用还糟糕。 有时候,正是那些意想不到之人,成就了无人能成之事。 ——图灵
领取专属 10元无门槛券
手把手带您无忧上云