![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c语言基础
文章平均质量分 91
金玲郎
一个热爱生活的搬砖工
展开
-
heap和satck的区别
1、栈 什么是栈,它是你的电脑内存的一个特别区域,它用来存储被每一个function(包括mian()方法)创建的临时变量。栈是FILO,就是先进后出原则的结构体,它密切的被CPU管理和充分利用。每次function声明一个新的变量,它就会被“推”到栈中。然后每次一个function退出时,所有关于这个函数中定义的变量都会被释放(换句话说就是删除)。一旦栈中的变量释放转载 2017-08-04 08:54:06 · 419 阅读 · 0 评论 -
带参数的宏与函数的区别
1.函数调用时,先求出实参表达式的值,然后带入形参。而使用带参的宏只是进行简单的字符替换。2.函数调用是在程序运行时处理的,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有“返回值”的概念。3.对函数中的实参和形参都要定义类型,二者的类型要求一致,如不一致,应进行类型转换;而宏不存在类型问题,宏名无类型,它的参数也无类型,只是一个符号代表转载 2017-08-04 08:39:44 · 3592 阅读 · 0 评论 -
strlen和sizeof的区别
本屌是小白,以后如果文章中有错误的地方,欢迎指正;谢谢各位大神浪费时间翻阅。strlen计算字符串大小遇到'\0'结束;ziseof计算字符串内存空间大小包括'\0'在内;#include#includeint main(int argc, const char *argv[]){ char s1[] = "hello kitty"; char s2[32] ="bye";原创 2017-08-03 11:29:35 · 306 阅读 · 0 评论 -
for循环嵌套的几种有意思的图形
for循环嵌套用我自己的大白话来说就是一个外圈的for程序里面一个套着一个小的for程序,如果在范围内就来回运行计算,超出了就跳出等待了,反正就是各种for的包含运行差不多的样子(个人见解,有错请纠正谢谢!)今天老师用五行五列的矩阵来讲解了这一块。然后讲述了最关键的一点,在这种for循环之中(外循环控制行,内循环控制列)然后自己按照老师的讲法有重新做了一遍。1:正常转载 2017-08-03 10:45:00 · 7122 阅读 · 2 评论 -
c语言,数据类型转换
在执行算术运算时,计算机比C语言的限制更多。为了让计算机执行算术运算,通常要求操作数有相同的大小(即位的数量相同),并且要求存储的方式也相同。计算机可能可以直接将两个16位整数相加,但是不能直接将16位整数和32位整数相加,也不能直接将32位整数和32位浮点数相加。另一方面,C语言允许在表达式中混合使用基本数据类型。在单独一个表达式中可以组合整数、浮点数,甚至是字符。当然,在这种情况下C语言编译器转载 2017-08-01 20:38:53 · 468 阅读 · 0 评论 -
编译器和链接器
C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可加载、可执行代码的过程。过程图解如下: 预处理器:将.c 文件转化成 .i文件,使用的gcc命令是:gcc –E,对应于预处理转载 2017-07-14 09:20:24 · 699 阅读 · 0 评论 -
typedef和#define的用法与区别
一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可以增强程序的可读性,以及标识符的灵活性,但它也有“转载 2017-07-11 11:53:42 · 153 阅读 · 0 评论 -
exit与return区别
exit(0):正常运行程序并退出程序;exit(1):非正常运行导致退出程序;return():返回函数,若在主函数中,则会退出函数并返回一值。详细说: 1. return返回函数值,是关键字; exit 是一个函数。 2. return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。 3. return是函数的退转载 2017-07-11 11:50:45 · 1199 阅读 · 0 评论 -
C语言变量存储类型auto,static,extern,static extern,register
C语言变量存储类型autostaticexternstatic externregisterauto 局部变量 auto 变量是用堆栈(stack)方式占用储存器空间,因此,当执行此区段是,系统会立即为这个变量分配存储器空间,而程序执行完后,这个堆栈立即被系统收回.在大括号{}内声明. 自动变量就是指在函数内部定义使用的变量。他只是允许在转载 2017-05-11 09:03:49 · 734 阅读 · 0 评论 -
const关键字
1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:) 2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用? (1)可以定义const常量,具有不可变性。 例如: const int M转载 2017-04-25 08:06:37 · 222 阅读 · 0 评论 -
struct和union大小的计算方法
结构体中的成员可以是不同的数据类型,成员按照定义时的顺序依次存储在连续的内存空间。和数组不一样的是,结构体的大小不是所有成员大小简单的相加,需要考虑到系统在存储结构体变量时的地址对齐问题。看下面这样的一个结构体: struct stu1 { int i; char c; int j; }; 先介绍一个相关的概念——偏移量。偏移量指的是结构体变量中成员的地址原创 2017-08-01 11:36:59 · 2434 阅读 · 0 评论