![](https://img-blog.csdnimg.cn/37a8eecaf38e4af697a80ff978ce8ad5.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言
文章平均质量分 71
讲解一下C语言中的难点和易混点,使用具体程序讲解!
ZHE980121
数字IC设计/验证
展开
-
斐波那契函数
一、递归定义把一个直接调用自己或通过一系列的调用语句间接地调用自己地函数,称做递归函数。每个递归定义必须至少有一个条件,满足时递归不再进行,即不再引用自身而是返回值退出。二、斐波那契数列实现三、程序代码//04斐波那契函数_Fibonacci#include "stdio.h" int Fbi(int i) /* 斐波那契的递归函数 */{ if( i < 2 ) return i == 0 ? 0 : 1; return Fbi(i - 1) + Fbi原创 2021-10-12 09:15:39 · 3310 阅读 · 3 评论 -
详解栈区、堆区、全局区、文字常量区、程序代码区
一、概述C的内存基本上分为4部分:静态存储区、堆区、栈区以及常量区。他们的功能不同,对他们使用方式也就不同。在C++中内存分成5个区,分别是堆、栈、全局/静态存储区、常量存储区和代码区;内存四区是指:栈区,堆区,全局区,代码区二、基本概念1:栈区(stack)栈区:就是那些由编译器在需要的时候分配,在不需要的时候自动清除变量的存储区。里面的变量通常是局部变量、函数参数等。特点:由系统的编译器自动的释放,主要用来存放方法中的参数,一些临时的局部变量等,并且方法中的参数一般在操作完后,会由编译器自动原创 2021-09-16 21:08:13 · 1909 阅读 · 0 评论 -
C语言指针详解
一、什么是指针C语言里,变量存放在内存中,而内存其实就是一组有序字节组成的数组,每个字节有唯一的内存地址。CPU 通过内存寻址对存储在内存中的某个指定数据对象的地址进行定位。这里,数据对象是指存储在内存中的一个指定数据类型的数值或字符串,它们都有一个自己的地址,而指针便是保存这个地址的变量。也就是说:指针是一种保存变量地址的变量。前面已经提到内存其实就是一组有序字节组成的数组,数组中,每个字节大大小固定,都是 8bit。对这些连续的字节从 0 开始进行编号,每个字节都有唯一的一个编号,这个编号就是内存地原创 2021-09-26 16:41:42 · 8597 阅读 · 2 评论 -
C/C++ typedef用法详解
一、typedef简介typedef的4种常见用法:1、给已定义的变量类型起个别名2、定义函数指针类型3、定义数组指针类型4、为复杂的声明定义一个新的简单的别名总结一句话:“加不加typedef,类型是一样的“,这句话可以这样理解:没加typedef之前如果是个数组,那么加typedef之后就是数组类型;没加typedef之前如果是个函数指针,那么加typedef之后就是函数指针类型;没加typedef之前如果是个指针数组,那么加typedef之后就是指针数组类型;typedef cha原创 2021-09-26 09:49:08 · 13357 阅读 · 2 评论 -
C语言中define的用法详解
宏——无非就是定义一个替换的量,好比#define PI 3.1415926,这样的功能,再深一点就是写一个类似函数的定义,好比#define MAX(a,b) ((a) > (b) ? (a) : (b))这样的功能。下面讲解一下具体用法:一、简单的define定义#define MAXTIME 1000一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写if(i<MAXTIME){.........}编译器在处理这个代码之前会对MAXTIME进行处理替换为100原创 2021-09-26 09:10:20 · 36919 阅读 · 0 评论 -
C语言中static关键字用法
在C语言中static的作用如下一、局部变量在修饰变量的时候,static修饰的静态局部变量只执行一次,而且延长了局部变量的生命周期,直到程序运行结束以后才释放。普通局部变量存储于进程栈空间,使用完毕会立即释放。#include <stdio.h>void fn(void){ int n = 10; printf("n=%d\n", n); n++; printf("n++=%d\n", n);}void fn_static(void){原创 2021-09-24 21:31:36 · 158 阅读 · 0 评论 -
C语言指针函数和函数指针详解
一、指针函数(int* fun(int,int);)指针函数是 返回指针的函数 主体是函数,返回值是一个指针基本声明形式:返回数据类型 + * + 函数名 + (变量类型1,…);int* fun(int,int); //更加直观,返回值是int* 类型int * fun(int,int);int *fun(int,int);举个例子:#include<stdio.h>int* fun(int* x) //传入指针 { int* tmp = x; //指针tm原创 2021-09-24 21:05:28 · 4977 阅读 · 0 评论 -
C语言extren关键字详解
一、extren关键字定义在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。常用于全局变量或全局函数声明。而全局变量在外部使用声明时,extern关键词是必须的,如果变量无extern修饰且没有显式的初始化,同样成为变量的定义,因此必须加extern,而编译器在此标记存储空间在执行时加载如内存并初始化为0。而局部变量的声明不能有extern的修饰,且局部变量在运行时才在堆栈部分分配内存。二、extren使用方法在声明的时候,这个exter原创 2021-09-24 20:56:02 · 2421 阅读 · 1 评论 -
C语言volatile类型限定符详解
一、volatile类型限定符volatile是一个类型修饰符(type specifier),就像我们熟悉的const一样,它是被设计用来修饰被不同线程访问和修改的变量;volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。简单地说就是防止编译器对代码进行优化。各种不同的解释:1、volatile限定符告知计算机,代理(而不是变量所在的程序)可以改变该变量的值原创 2021-09-24 20:26:42 · 4380 阅读 · 0 评论 -
const 和define区别
很多人在学习 const 的时候都会混淆它与 define 的区别。从功能上说它们确实很像,但它们又有明显的不同:define是预编译指令,而const是普通变量的定义。define定义的宏是在预处理阶段展开的,而const定义的只读变量是在编译运行阶段使用的。const定义的是变量,而define定义的是常量。define定义的宏在编译后就不存在了,它不占用内存,因为它不是变量,系统只会给变量分配内存。但const定义的常变量本质上仍然是一个变量,具有变量的基本属性,有类型、占用存储单元。可以说,常原创 2021-09-24 15:31:24 · 240 阅读 · 0 评论 -
C语言中const关键字用法详解
一、const定义const——用于限定一个变量为只读。在C语言中,用const类型限定符生命的式变量,不是常量,并且能消除存储操作(在存储时只存一次)。声明如下:const int MONTHS=12;//MONTHS在程序中只读不可更改,值为12二、const用法1、说明值常量值常量的说明一般放在头文件或者文件的开始部分,也可以放在类中进行说明(1)说明符号常量,表明符号代表的是一个常量,语法格式:<类型>const<常量名>=<表达式>,<常原创 2021-09-24 15:27:03 · 1403 阅读 · 0 评论 -
形参和实参的定义和区别
一、实参定义实参(argument)——全称为"实际参数"是在调用时传递给函数的参数。 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。举例int a=10;//则a为实参int b=20;//则b为实参二、形参定义形参(parameter)——全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用原创 2021-09-24 13:25:21 · 7749 阅读 · 0 评论 -
Sizeof与Strlen的定义和区别
一、sizeof定义定义-sizeof(…)运算符以字节为单位返回运算对象的大小,C语言规定,sizeof返回size_t类型的值。size_t是语言定义的标准类型。参数可以是数组、指针、类型、对象、函数等。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。sizeof有三种语法形式,如下:1)sizeof( object )// sizeof( 对原创 2021-09-24 10:43:25 · 197 阅读 · 0 评论 -
break ,continue ,return 的区别及作用?
break,continue,return的区别为:作用不同、结束不同、紧跟不同。一、作用不同1、break:执行break操作,跳出所在的当前整个循环,到外层代码继续执行。2、continue:执行continue操作,跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。3、return:执行return操作,直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。二、结束不同1、break:break不仅可以结束其所在的循环,还可结束其外层循环,但一次只能结束一原创 2021-09-23 21:49:52 · 1540 阅读 · 0 评论 -
C语言之标准(K&RC 、c89、c99、c11)
C 语言标准C语言作为一种常用的计算机开发语言,被用于各种领域,尤其是单片机与嵌入式的开发,在现阶段更有着无可替代的作用,我也经常会使用C语言进行各种开发,使用过程中我们经常会听说 GUN C 、ANSI C、标准C这几个术语,在了解这几个术语对应的C标准之前,我们需要先了解三个组织,分别是自由软件基金会,美国国家标准学会以及国际标准化组织。下面对其三个组织进行简单说明:自由软件基金会:是美国的一个民间非营利组织,致力于推进自由软件,其中linux与gnu就是由这个组织在维护。美国国家标准学会:听名字原创 2021-09-15 21:10:12 · 2159 阅读 · 0 评论 -
C语言思维导图
C语言思维导图暑假期间总结的,内容都比较基础,可用作基础复习!会上传该思维导图PDF版本,需要请下载!再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。01C语言数据类型基本类型数值类型整型短整型short至少占16位,2个byte整型int不小于16位,4个byte长整型long至少占32位,4个byte长长整形long long至少占64位,8个byte实浮点型单精度型float精确表示至少6位有效数字原创 2021-09-14 09:28:55 · 1049 阅读 · 1 评论