
c语言总结
kookie29
这个作者很懒,什么都没留下…
展开
-
宏和函数的区别
//1.使用宏实现两个数中求较大值。#include<stdio.h>#include<stdlib.h>#define MAX(x,y) ((x)>(y))?(x):(y)int main(){ printf("max=%d\n", MAX(10,20)); system("pause"); return 0;}宏和函数区...原创 2017-10-27 08:12:21 · 383 阅读 · 0 评论 -
全局变量与局部变量
局部变量:在局部代码块内定义;作用域在局部代码块内,生命周期在局部代码块内,结束时销毁。#include void test(){ int num=0;//num是局部变量 num ++; printf ("%d\n",num)}int main(){ int i=0; for(i=0;i<10;i++){ test ();}return 0;}原创 2017-10-10 23:10:22 · 397 阅读 · 0 评论 -
c的部分算术运算符和算术表达式:
c语言的算术运算符和算术表达式:(1)基本的包括:+,-, *, %, /.注意:两数相除为整数,舍去小数部分。采用“向0取整”的方法,即5/3=1,-5/3=-1。(2)强制类型转换:(类型名)(表达式)若写成(int )x+y 则只将x转换成int型。例:#include int main() { float x;int i;x=原创 2017-10-02 13:52:53 · 972 阅读 · 0 评论 -
”复杂”的栈帧
栈帧-函数的调用过程 这部分比较难懂,下面就用一段代码来描述吧!先来说一下内存吧!#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>int Add(int x, int y){ int z = 0; z = x + y; return z;}int main(){ int ...原创 2017-11-22 14:13:54 · 387 阅读 · 0 评论 -
指针数组,数组指针,函数指针,函数指针数组 ,指向函数指针数组的指针
首先有个问题:指针和数组有什么关系呢? 答案:什么关系都没有。 指针就是指针,在32位平台下,永远占4个字节,其值为某一个内存的地址。数组就是数组,其大小与元素的类型和个数有关。定义数组时必须指定其元素的类型和个数。1.指针数组指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。int *a[10];//指针数组,“...原创 2017-11-19 21:09:35 · 1262 阅读 · 0 评论 -
自定义类型:结构体,枚举,联合
结构体:我们之前学过数组吧!结构体和它类似。 1.结构体的声明 结构是一些值的集合,这些值称为成员变量。结构的每个成员变量可以为不同的类型。其声明为:struct tag //tag为标签{ member-list;//不可省略。}variable-list;//分号不能丢标签和变量名至少存在一个。下面给出一断代码,看看是否合法?struct { ...原创 2017-11-24 19:14:01 · 374 阅读 · 0 评论 -
动态内存管理 :malloc ,calloc,realloc,柔性数组
之前我们经常使用的内存开辟方式为:int val = 20;//在栈空间上开辟四个字节char arr[10] = {0};//在栈空间上开辟10个字节的连续空间但此种方式有两个特点:空间开辟⼤⼩是固定的。数组在声明的时候,必须指定数组的⻓度,它所需要的内存在编译时分配。下面来说说动态内存开辟的函数malloc函数原型为:void *malloc(siz...原创 2017-11-27 11:13:28 · 558 阅读 · 0 评论 -
移位操作符.位操作符,sizeof
操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式算术操作符、逗号表达式、前面提过,这里不多说移位操作符>> 右移操作符左移操作符移位规则:左边抛弃、右边补0右移操作符移位规则:首先右移运算分两种:1. 逻辑移位左边用0填充,右边丢弃2. 算原创 2017-10-12 20:20:13 · 574 阅读 · 0 评论 -
程序环境和预处理
1. 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。翻译环境 每个源文件进行单独编译,形成一个目标文件。 2. linux部分命令 ls //列出目录 mkdir // 创建文件夹 cd //改变目录 touch //创建空文件 ifconfig //查ip地原创 2017-10-26 22:46:10 · 337 阅读 · 0 评论 -
递归
什么是递归? 递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法。递归的主要思考方式在于:把大事化小。 递归的两个必要条件 (1)存在限制条件,当满足这个限制条件的时候,递归便不再继续。 (2)每次递归调用之后越来越接近这个限制条件.接下来说几个栗子来说明递归练习1接受一个整型值(无符号),把它转换为字符并打印它。 例如输入:1234,输出 1 2 3 4.#incl原创 2017-11-10 17:42:51 · 282 阅读 · 0 评论 -
main函数的参数解析
main函数的参数解析我们平常写main函数的时候习惯不带参数,将其默认为void. 但如果我们仔细观察的话,我们就能发现其实main函数是有参数的。 接下来,我们就来了解一下main函数的参数列表。 首先main函数的原型为:int main( int argc, char *argv[ ], char *envp[ ] );so接下来解释一下这三个参数: 参数1:argc 是个整型变量原创 2017-11-05 18:04:47 · 669 阅读 · 0 评论 -
可变参数列表解析
通过将函数实现为可变参数的形式,可以使得函数可以接受1个以上的任意多个参数(不固定)。注意: a .可变参数必须从头到尾逐个访问。如果你在访问了几个可变参数之后想半途终止,这是可以的,但是,如果你想一开始就访问参数列表中间的参数,那是不行的。 b.参数列表中至少有一个命名参数。如果连一个命名参数都没有,就无使用va_start。 c. 这些宏是无法直接判断实际存在参数的数量。 d.这些宏无法原创 2017-11-06 00:08:00 · 647 阅读 · 0 评论 -
指针的入门
指针是·学懂c语言最关键的部分之一。首先我们先来了解一下指针到底是什么吧?指针大小在32位平台下是4个byte,其值为某一个内存的地址。每个地址表示一个字节什么是指针这里我们用一段代码来说明:#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <windows.h>int mai...原创 2017-11-18 13:11:57 · 363 阅读 · 0 评论 -
大端小端问题
什么大端小端:大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。//代码1#include <stdio.h>#include <windows.h>int check_sys(){ int a = 1; char *p=(char *)&a;原创 2017-11-19 22:10:41 · 307 阅读 · 0 评论 -
c语言总结基础部分
总结1: 总结2: 总结3: 总结4: i以上均为概要总结!原创 2018-07-30 15:22:20 · 239 阅读 · 0 评论