自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 C语言实现计算器(包含加减乘除和括号)

#include                          /*包含头文件*/  #include #define MAX_SIZE 1024                       /*数组长度*/  int insert_operand(int *operand , int * top_num ,int num)           /*数据压入数据栈

2017-01-19 20:33:51 27389 4

原创 linuxc

Linux系统的构成用户空间内核空间(保护内核空间的数据)用户空间访问内核空间通过 系统调用或者硬件中断系统调用提供一组函数模型(用户编程接口API函数)操作一个文件的文件描述符相当于操作这个文件文件的属性可读可写可执行设备文件和网络文件会造成阻塞

2017-01-18 20:45:59 247

转载 库函数和系统调用的区别

库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。用户应用程序访问并使用内核所提供的各种服务的途径即是系统调用。在内核和用户应用程序相交界的地方,内核提供了一组系统调用接口,通过这组接口,应用程序可以访问系统硬件和各种操作系统资源。 1.系统调用是为了方便应用使用操作系统的接口

2017-01-17 20:10:18 268

转载 二维数组

一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量。本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般形式是:    类型说明符 数组名[常量表达式1][常量表达式2]其中常量表达式1表示第一维下标

2016-12-05 15:55:39 321

转载 一维数组

一维数组的定义方式在C语言中使用数组必须先进行定义。一维数组的定义方式为:    类型说明符 数组名 [常量表达式];其中,类型说明符是任一种基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。例如:复制纯文本复制int a[10]; /* 说明整型数组a,有10个元素 */float b[10],

2016-12-05 15:53:11 416

原创 野指针

野指针:随机指向一块内存的指针危害:造成内存泄漏(段错误)规避:首先要养成良好的编码习惯1:未初始化时,初始化为空2:当向指针指向的空间赋值时,检查这个指针是否分配了空间(malloc)3:检查分配空间是否成功4:初始化内存地址memest(p,0,sizeof(int))5:用完返还系统free(p)6:

2016-12-05 15:50:09 202

原创 课堂笔记

对数组名取地址为数组的地址,对其+1跳数组的长度对一维数组的地址取值等于一维数组首元素的地址a[i] = *(a + i)a[i][j] = *(*(a + i) + j)a + i:第i + 1个一维数组的地址*(a + i):第i + 1个一维数组的首元素地址*(a + i) + j: 第i + 1个一维数组的第j + 1个元素的地址*(

2016-12-05 15:42:52 212

转载 malloc calloc ralloc

1.分配内存空间函数malloc调用形式: (类型说明符) malloc (size) 功能:在内存的动态存储区中分配一块长度为”size” 字节的连续区域。函数的返回值为该区域的首地址。 “类型说明符”表示把该区域用于何种数据类型。(类型说明符)表示把返回值强制转换为该类型指针。“size”是一个无符号数。例如: pc=(char *) malloc (100); 表示分配100个字节的

2016-12-05 15:41:28 212

转载 c语言标准

起初,C语言没有官方标准。1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。布莱恩·柯林汉(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本书,名叫《The C Programming Language》。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R

2016-12-05 15:39:50 286

原创 malloc的实现原理

malloc()是C语言中动态存储管理 的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值 是一个指向所分配的连续存储域的起始地址的指针。  动态内存分配 就 是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据 程序的需要即时分配,且分

2016-12-05 15:38:49 174

原创 课堂笔记

变量特点; 1.变量的数据类型: 变量占用内存空间的大小                   2.变量的作用域: (生命周期)变量的有效性范围                   3.变量的存储类型: 变量在内存中的存储方式内存和硬盘的区别:内存:数据调定会丢失,放的是运行数据,动态执行                                 

2016-11-27 16:06:38 174

转载 printf函数

首先直接描述printf函数中的“格式描述串”,它是由一系列的“格式转换说明符号”组成,格式转换说明符号的描述形式如下:%[+][-] 0 m[n][输出精度](1)形式字母:制定输出格式,如表d:十进制整型数i:十进制整型数x:十六进制整型数o:八进制整形数u:无符号十进制整形数c:单个字符s:字符串e:指数形式的浮

2016-11-27 16:05:25 240

转载 scanf用法

scanf的结束标志是空格和回车键,而gets的结束标志为回车键,输入字符串时,一般采用gets因此有下面两种方法可以在使用scanf时完整输入字符串1)利用strcat()函数来实现带空格字符串的输入,可以用字符串追加函数strcat()来连接每个单词。 Strcat()一般格式:char*strcat(char*dest,const char*src);  

2016-11-27 16:02:24 367

原创 数据类型

int a;整型变量int *a;整型指针变量int  **a;整型指针的指针变量int a[10];整型数组int *a[10]; 整型指针数组int (*a)[10]; 数组指针变量int (*a)(int);函数指针 int (*a[10])(int);函数指针数组 int *(*(*fp1)(int)[10];

2016-11-27 16:01:25 172

原创 位运算习题

1. 题目:请编写一个c函数,该函数给出一个字节中被置为1的位的个数#include void fun(char a){    int i;    int temp;    int count = 0;    for(i = 0;i     {        temp = (a>>i) & 1; if(temp == 1) {

2016-11-27 15:59:40 505

原创 char溢出计算

无符号char 类型能标示的数是:0-255有符号char类型能标示的数是:-128-127char c = 128;printf("c = %x \n", c);得到结果是:c = ffffff80这个如何理解 char是一个字节的,怎么变成四字节了???128的十六进制是0x80, 也就是2^7, 二进制看起来像这样:1000 000

2016-11-27 15:57:23 752 1

转载 vim文本编辑器

1. 关于Vimvim是我最喜欢的编辑器,也是Linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)1.1 Vim的几种模式正常模式:可以使用快捷键命令,或按

2016-11-21 13:19:58 363

原创 课堂笔记

1.mkdir -p add/src          -p:按写的路径新建目录,如果没有add,则新建add目录和src目录2.学习makefile的作用:     ①学会如何快速编译程序     ②方便阅读别人写的代码3.各个目录的分类参考内核的分类     include     放头文件     lib    

2016-11-21 13:16:43 193

转载 程序的编译,连接

编译过程许多IDE和编译器将编译和链接的过程合并在一起,称为构建(Build),使用起来非常方便。但只有深入理解其中的机制,才能看清许多问题的本质,正确解决问题。一般的编译过程可以分解为4个步骤,预处理,编译,汇编和链接:预编译:处理源代码中的以”#”开始的预编译指令,如”#include”、”#define”等。编译:把预处理完的文件进行一系列的词法分析、语法分析、语义分析及

2016-11-21 13:14:52 411

转载 左右法则

C指针声明解读之左右法则C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的。右左法则的英文原文是这样说的:  The right-left rule

2016-11-21 13:12:02 218

原创 目前主要的编成语言及应用方向(领域)

1.c(一门通用计算机编程语言,应用广泛,所有操作系统的内核都是C语言实现2.c++(c++是当今最流行的高级设计语言之一,与C语言兼容,既支持结构化的程序设计方法,也支持面向对象的程序设计方法,应用广泛,特别在服务器的后台设计管理)3.java(Java技术具有卓越的通,高效性,平台移植性和安全性,广泛应用于个人pc,数据中心,游戏控制平台,科学超级计算机,移动电话和互联网)4.ph

2016-11-20 13:59:59 729

原创 面向结构与面向对象的区别

面向结构:微观具体的(c语言)面向对象:宏观的所有操作系统的内核都是用c语言实现的面向结构的优点:1.有出色的移植性(转换平台修改代码越少或能够在多平台运行)2.能够访问硬件(汇编也能访问硬件,且访问的效率更高但因没有高级语法实现不了复杂功能)(汇编:对硬件做初始化;C语言:实现复杂操作功能)3.运行访问的效率高面向结构的缺点:1.复用性差

2016-11-20 13:52:24 2681

转载 结构体

在C语言中,可以使用结构体(Struct)来存放一组不同类型的数据。结构体的定义形式为:struct 结构体名{ 结构体所包含的变量或数组};123123结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。请看下面的一个栗子:struct stu{ char *name; //姓名

2016-11-14 20:54:50 245

转载 字符串

字符串的表示形式在C语言中,可以用两种方法表示和存放字符串:(1)用字符数组存放一个字符串          char str[ ]="I love China";(2)用字符指针指向一个字符串          char* str="I love China";对于第二种表示方法,有人认为str是一个字符串变量,以为定义时把字符串常量"I love China"直接赋给该

2016-11-13 21:43:56 256

原创 3个C语言小程序

#include                                                                                           int main() {             int i;        int j;           int flag = 0;        int

2016-11-13 21:39:11 254

原创 笔记(gdb)

gcc -g test.c -o test            gdb test (可执行文件)            run    运行程序            quit     退出gdb            list    显示代码,.c 文件            list     显示程序第linenum行的周围的源程序。     

2016-11-13 21:37:34 231

转载 gcc编译

Contents 一、简介... 2 二、简单编译... 2 2.1预处理... 2 2.2编译为汇编代码(Compilation). 3 2.3汇编(Assembly). 3 2.4连接(Linking). 3 三、多个程序文件的编译... 3 四、检错... 4

2016-11-13 21:35:15 289

原创 笔记

用%s 格式符输出字符串用char来定义字符数组如果不清楚字符串的具体长度可以用#define MAX_SIZE  1024来定义一个空间scanf函数中的输入项如果是字符数组名,不要加地址符&,在C语言中数组名代表的是该数组的起始地址两种获取字符串的方法:(1)scanf(”%s“,数组名);(2)gets(数组名);遍历的两种方法:(1)int   le

2016-11-13 21:31:38 233

转载 C语言

.数组名 声明中:当我们声明一个数组时,编译器将根据声明所指定的元素数量及类型为数组保留内存空间,然后再创建数组名,编译器会产生一个符号表,用来记录数组名和它的相关信息,这些信息中包含一个与数组名相关联的值,这个值是刚刚分配的数组的第一个元素的首地址(一个元素可能会占据几个地址,如整型占4个,此处是取起始地址)。现在声明一个数组:int ia[100]; 编译器此时为它分配空间,假设第一个数组

2016-11-08 22:02:23 301

原创 C语言

2016-11-06 21:57 0人阅读 评论(0)收藏举报本文章已收录于:大家都知道指针是C语言中的精粹,学好了指针基本就等于学号了C语言,它能直接对物理地址进行访问,具有双重功能,是嵌入式设计中必不可少的一门语言。C语言功能强大的主要原因就是具有指针结构。指针是一种特殊的数据类型,直接指向目标的存储地址,实现直接访问对象存储空间的功能。 下面谈谈几

2016-11-07 22:21:02 235

原创 biji

文件属性:可读,可写,可执行“—”开头的为普通文件   “d”开头的为目录文件   “c或b”开头的为设备文件  “l”开头的为链接文件TAB键可自动生成命令touch hello.c  创建hello.c文件  加后缀gedit 文本编辑器      cat 查看内容或者再用编辑器gcc 编译器./+文件名     例如   ./ab.c   执行ab.c

2016-11-06 22:43:48 257

原创 c 语言复习

(1)putchar函数:putchar函数(字符输出函数)的作用是向终端输出一个字符。其一般形式为 putchar(c)它输出字符变量c的值,c可以是字符型变量或整型变量用putchar函数也可以输出控制字符以及其他转义字符 (2)getchar函数:getchar函数(字符输入函数)的作用是从终端(或系统隐含制定的输入设备)输入一个字符,getchar函数没有参数,其一般形式为 getch

2016-11-06 00:05:32 250

原创 宏定义复习

一、 宏定义 1. 不带参数的宏定义 用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为 ’#define标识符 字符串(这就是在前文已经介绍过的定义符号常量) 例:#define PI 3.1415926 它的作用是在本程序文件中用指定的标识符PI来代替“3.1415926”这个字符串,在编译预处理时,将程序中在该命令以后出现的所有的PI都用“3.1415926”代

2016-11-04 23:17:36 263

原创 c语言语句

.C语句分类 C语句分为以下五类:控制语句、函数调用语句、表达式语句、空语句、复合语句 (1)控制语句。控制语句用于完成一定的控制功能。 C只有9种控制语句它们是: if() … else … (条件语句) for() … (循环语句) while() … (循环语句) do … while() (循环语句) continue (结束本次循环语句) break (中

2016-11-04 23:16:49 646

原创 初识苏嵌

第一次上苏嵌的课,感觉已经被老梁洗脑,讲的挺好,也学到了不少知识,老梁的上课方式挺特别,似乎又回到了高三的感觉,记了很多笔记,好好学,加油

2016-11-03 00:13:27 551

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除