自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 文件的补充

库函数与系统调用的区别:1.Linux 下和Windows下都可用,而系统调用只能在Linux下依赖系统;2.库函数有缓冲 效率高,系统调用无缓冲,效率低;3.大量读取(普通文件);数据系统结构{本地小型数据库主从式数据分布式数据库}关系型数据库管理系统{     oracle     sql sever    dbl

2017-01-18 20:53:30 218

原创 Linuxc

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

2017-01-17 19:11:49 245

原创 本周总结

本周总结:本周课堂上主要讲了运算符控制符 关键字 复合数据类型;运算符中函数传参从右边开始;++i被替换成i变量i++被替换成常量;结束的标志是函数括号 , ;Mask:掩码在位运算中特别重要;位运算在硬件的使用时很重要;右移都是拿符号位补位;左移都是拿0来补位;在不适用第三方的情况下交换两个值:a = a ^ b;b = a

2016-12-18 20:09:48 210

原创 关键字的总结

关键字: 补充:Cpu的三大存储:运算器,控制器,寄存器Register作用:请求编译器尽可能的将数据保存在寄存器中,从而省去了cpu从内存中提取数据的时间,提高了访问的效率;何时使用:频繁被访问的变量或循坏变量注意事项:   1.只能修饰局部变量,不能修饰全局变量和函数;   2.不能使用&来获取变量的地址,因为可能不是在内存中存储; 

2016-12-18 19:24:31 221

转载 联合体

联合体又被称为共用体,我个人感觉,共用体名字更合理。和结构体同属于C语言数据类型中的结构类型。例如uniuon data{      int i ; char c ;float f;}x;定义共用体类型名称为data类型,有三个属性,分别为int i ; char c ;float f;这三个属性共同占用内存空间,所以空间占用选属性中占用最多的那个,也就是float f。

2016-12-13 21:15:56 200

原创 一周总结

在课堂上,本周复习了之前的指针和数组,讲了为什么要提出指针,以及指针与数组的区别;主要讲了函数,因为之前上课时就讲了函数,所以听起来很容易接受,从函数的三要素上来了解函数;函数名:指针常量,用来存放函数的入口地址;函数的形参:讲了传入参数和传出参数的概念。前者,一个变量原来在主函数中定义并赋值了,把值出给形参。接形参大多根据传入实参的类型来判断;后者,是一个变量在主函数中只定义未赋

2016-12-11 20:14:59 313

原创 指针与数组的区别,以及函数的实现过程

指针与数组的区别1.为什么要引出指针因为从空间的分配上,由于数组是静态分配利用率低,指针是动态分配,空间利用率高。因为c语言的特点,能直接访问硬件正是由于指针能够访问地址,才产生的指针是个变量,数组名是个常量,所以指针的使用比较灵活。而且函数的形参也都是指针。因为实参传的是地址从安全性上,指针会造成内存泄漏,数组只会产生越界。从访问效率上

2016-12-07 22:44:38 217

原创 数组的总结

数组(Array)是一系列相同类型的数据的集合,可以是一维的、二维的、多维的;最常用的是一维数组和二维数组,多维数组较少用到。对数组的总结1) 数组的定义格式为:type arrayName[length]type 为数据类型,arrayName 为数组名,length 为数组长度。 需要注意的是:数组长度 length 最好是整数或者常量表达式,例如 10、20*

2016-12-06 21:55:35 199

原创 数组与指针的混合使用

今天主要讲了,以为一维数组的输入输出,二维数组的输入输出,还有指针数组的输入输出,还有就是main函数的形参int argc char * argv[]函数名是指针常量可作实参传递函数的指针作形参:回调函数,或钩子函数作用是提高代码的扩展性和维护性再添加新功能时,修改代码越少,扩展性越好写代码,要注意的是不仅仅,是简单的算法,而是要注意扩展性,维

2016-12-05 22:09:23 492

转载 malloc的实现原理

malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存

2016-12-04 19:47:13 253

原创 数组的一些概念

&a 代表数组的地址对一维数组名取地址等于一维数组的地址;对数组的地址取值等于等于一维数组的首元素的地址 Int *p = #P = #*p = num = *(&num);所以*(&a)= a;一维数组的理解* ( *( a + i ) + j )a + i :第i +1个一维数组的地址;*(a + i):第

2016-12-03 22:27:32 252

原创 指针的一些注意事项

(char*)强制转化指针一定要相同类型的指针赋值(因为不同指针的步长不一样,长字节的赋值给短字节的,接受数据接受少了,相反接受多了) Void * (万能指针)可以保存任何类型的指针值,但是不可以对这个指针取值;因为void无步长默认加一个字节。。。。。通常发现段错误:首先想到的是不是野指针。。。地址类错误首先想到的是步长。。

2016-12-02 23:13:43 267

转载 数组

数组名作为函数参数时传递给形参的是数组的指针,而且在子函数中无法用sizeof取得数组的大小,所以有需要时可以用另一个参数传递数组的大小。数组作为形参时可以写成int f(int a[])或者int f(int * a)或者int f(int a[10]),他们三者都一样的,因为对于指针来说“[]”等

2016-12-01 19:50:18 163

原创 野指针

野指针:定义:随机指向一块内存容易造成的错误:内存泄漏,但是不一定每次都会产生段错误,因为系统可能给已经分配过的申请过的内存地址:如何避免野指针:应该养成以下的编码习惯:、当一个指针没有指向时,初始化为空:NULL:0地址对应的空间不允许做操作当要往一个指针指向的空间赋值时,一定要先检查这个指针是否分配了空间malloc(sizeof(int))形参

2016-11-30 22:13:35 165

原创 删除子串

#include #define MAX_SIZE 1024void delete_str(char *src,char *sub){    int i;    int j;    int len = strlen(sub);    int src_len = strlen(src);    while(*src != '\0')    {     

2016-11-29 22:37:27 398

原创 指针的简单定义

Int *p:p是指针变量,存放的是地址,这个地址是整型地址;;; 指针(是一个变量)步长:+1后跳的地址:对应的内存空间;指向的内存空间; Int num = 5;int * p = #num++:对num对应的内存空间的值+1;P++:对p对应的内存空间+1;(*p)++:对p指向的内存空间的值+1; 指向的内存空间:就是这个指针

2016-11-28 21:54:16 188

转载 内存泄漏

问:下面的代码会导致内存泄漏吗?#include void main(void){    char *ptr = (char*)malloc(10);     if(NULL == ptr)    {        printf("\n Malloc failed \n");        return;    }    else  

2016-11-27 18:16:20 181

原创 变量

变量的三大特点:变量的数据类型:占用内存空间的大小(字节长度)变量的作用域:变量的有效范围,即变量的使用范围;变量的存储类型:变量在内存中的内存方式,不同的存储方式,影响变量在内存中的生命周期;计算机的三大组成:内存硬盘CPU硬盘和内存的区别:硬盘存放的是静态数据,而内存存放的是动态数据,但是硬盘吊链数据不丢失,内存就是会丢失,程序存在硬盘,运行

2016-11-27 18:13:33 253

转载 typedef的使用

入正文: 代码简化, 促进跨平台开发的目的. typedef 行为有点像 #define 宏,用其实际类型替代同义字。 不同点:typedef 在编译时被解释,因此让编译器来应付超越预处理器能力的文本替换。用法一:typedef int (*MYFUN)(int, int); 这种用法一般用在给函数定义别名的时候上面的例子定义MYFU

2016-11-25 23:31:49 186

转载 c语言位运算的作用

C中的位运算可以对整形INT 或字符型CHAR 进行二进制按位运算& 是对两个二进制数进行 与运算| .....................或运算^ .....................异或运算~ 是单目运算,对一个二进制数取反<< 是对一个二进制数进行左移运算>>.....................右移运算 C语言中提供给开发人员一种位的运算,这

2016-11-24 21:39:49 430

原创 位运算四道程序

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-23 23:15:10 406

原创 逆序(数组和指针的使用)

指针char temp;char  *p;char  *dest;char *p = dest + strlen(dest) - 1;    while(dest     {        temp = *p;        *p-- = *dest;        *dest++ = temp;    }数组char

2016-11-22 22:25:01 620

原创 数据类型

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]; 分析:fp1是一个函数指针变量

2016-11-21 22:42:41 154

原创 周总结

本周课上学习了makefile的制作及一些功能的使用一些功能函数变量及几种makefile的功能作用等,还有就是在写一些代码是的一些快捷键;除此之外还学了c语言的概述和其他一些语言的了解和对比在自己学习的过程中对指针的了解还不是很透彻,只要在指针函数,或者指针的引用不是很了解。。。其次就是对一些代码不太熟,比如说对函数这一块不是太熟,因为自己理解了一些书上的代码后去写函数的程序很多运行

2016-11-20 19:57:09 217

原创 c语言的一些概述

面向对象的语言:(解释性语言;编写的程序不进行预先编译,以文本的方式存储代码,在发布程序时看起来省了编译工序,但是运行程序的时候解释性语言必须先解释在运行执行效率较低)C++ 服务器后台  vr虚拟现实Java 网页网站c# windows做桌面应用程序Php 前端/后台 (电商).net 做网站脚本语言 phython shell大数据处理

2016-11-19 22:20:03 172

原创 makefile与一些命令

Makefile的作用:makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。    makefile带来的好处就是——“自

2016-11-18 21:55:23 224

原创 结构体

结构体 理解与测试: 1)结构体也是一种数据类型。结构体类型变量的定义有三种方式。第一种,先声明一个结构体类型再定义一个结构体变量。第二种,声明结构体类型时同时定义结构体变量。第三种,直接定义结构类型变量,即不出现结构体名。结构体可以嵌套定义,即成员也可以是一个结构体变量。2)成员名可以与程序中的变量名相同,二者不代表同一个对象。 3)结构体变量的初始化可以类似数组的初

2016-11-18 21:50:57 271

原创 makefile

今天主要讲了scripts头文件中的makefile;涉及了变量的定义(=:=  += ?=)几个函数:Patsubst模式参数 参数1 参数2把参数二中符合模式参数的单词替换成参数1Wildcard  *.c当前目录下所有的.c文件Addsuffix参数1  参数2把参数2生成带参数1 后缀的形式 call:

2016-11-16 22:59:33 145

转载 Linux操作系统的简介

Linux操作系统,是一种计算机操作系统,中文读法大致一般为“哩纽克斯”。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。一、概述  简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不

2016-11-15 21:53:10 312

转载 c语言的字符数组和字符指针

  这几天搞Unix上的C程序,里面用到了很多字符数组和字符串指针,我记得在学完C语言后相当一段时间里,对指针这个东西还是模模糊糊,后来工作也没怎么用到过C,虽然网上这类的文章也有很多,还是决定自己在这做个小总结,也算加深下自己的印象,写了下面的测试程序:#include int main(int argc, char *argv[]){  char day[15] =

2016-11-14 22:25:47 301

转载 c语言指向结构体数组的指针

c指针变量可以指向一个结构数组,这时结构指针变量的值是整个结构数组的首地址。结构指针变量也可指向结构数组的一个元素,这时结构指针变量的值是该结构数组元素的首地址。设ps为指向结构数组的指针变量,则ps也指向该结构数组的0号元素,ps+1指向1号元素,ps+i则指向i号元素。这与普通数组的情况是一致的。【例11-6】用指针变量输出结构数组。struct stu{

2016-11-13 18:52:12 1043

原创 编译器+调试器+功能管理器

gcc编译的特点:可编译多种语言可交叉编译(在当前的CPU下编译出不同的CPU体系结构下可执行的代码) 编译器的编译过程:(面试)预处理:1.头文件展开2.宏替换3.条件编译gcc -E main.c编译:1.语法检查2.词法分析 生成目标文件gcc -c  main.c汇编:生成汇编文件 gcc -S main.c链接:

2016-11-12 22:38:49 356

原创 编译器的三个扩展

三个级别的优化:-O1 提供基础级别的优化 -O2 提供更加高级的代码优化,会占用更长的编译时间 -O3 提供最高级的代码优化 链接的作用:把目标文件和库文件链接成可执行文件链接就是链接器ld将各个目标文件组装在一起,解决符号依赖,库依赖关系,并生成可执行文件。链接的命令为:ld –static crt1.o crti.o crtbeginT.o hello.o

2016-11-11 22:35:29 252

原创 指针

指针变量的值存储于计算机的内存中,每个变量都占据一个特定的位置。每个内存位置都由地址唯一确定并引用,就像一条街道上的房子由他们的门牌号码标识一样。指针只是地址的另一个名字。指针变量就是一个其值为另外一个内存地址的变量。指针常量 指针常量与非指针常量在本质上是不同的,因为编译器负责把变量赋值给计算机内存中的位置。把指针常量表达为数值字面值的形式几乎没有用处。 当一个字符串

2016-11-10 21:47:15 155

原创 三道程序的分析

1.第一题输入一个字符串带数字和字母,求出数字的个数;首先字符串遍历然后筛选出字母,然后计数,然后输出计的数;2.第二题是输入一个字符串输出数字。首先字符串遍历,然后把每个字符转化为数字相应的乘10;然后输出数字;3.第三题输入一个数字,把他改成字符串输出;首先把一个数字拆开把他放入数组,然后再用个数组的倒叙就可以了,正确的输出字符串;4.第四题一个带数字带字母的字符串,把字符

2016-11-09 22:57:42 350

转载 Linux 下能用于 C 应用程序开发和调试的工具

Linux的发行版中包含了很多软件开发工具. 它们中的很多是用于 C 和 C++应用程序开发的. 本文介绍了在 Linux 下能用于 C 应用程序开发和调试的工具. 本文的主旨是介绍如何在 Linux 下使用 C 编译器和其他 C 编程工具, 而非 C 语言编程的教程.GNU C 编译器GNU C 编译器(GCC)是一个全功能的 ANSI C 兼容编译器. 如果你熟悉其

2016-11-08 21:51:56 553

原创 程序实战

今天上课写了三道程序题,首先要规范写法;比如整形的放一起,排列要整齐,开头缩进4行;循坏语句要加大括号运行错误时,可以自己按照程序的算法,查看哪里错了;三道程序分别是1-100以内的素数;先用for实现1-100;再用一个循坏从1-i/2,用每个数从2-i/2取余为零就不是素数;第二道找完数,先把每个数除本身以外的因数求出来加起来看是否等于这个数是就是完数;第三

2016-11-07 22:27:14 258

转载 c语言内存分配与释放

什么是堆?说到堆,又忍不住说到了栈!什么是 栈?1、什么是堆:堆是大家共有的空间,分全局堆和局部堆。全局堆就是所有没有分配的空间,局部堆就是用户分配的空间。堆在操作系统对进程 初始化的时候分配,运行过程中也可以向系统要额外的堆,但是记得用完了要还给操作系统,要不然就是内存泄漏。2、什么是栈:栈是线程独有的,保存其运行状态和局部自动变量的。栈在线程开始的时候初始化,每个线程的栈互相独立。

2016-11-06 20:37:36 323

原创 linux的一些命令

mkdir 创建一个目录cat 查看文件的内容rm 删除文件或目录mv 剪切或改名cp 复制ls 显示一个目录下的文件或子目录pwd 工作目录的绝对途经reset clear 清除ifconfig 查看或配置网路设备touch 新建一个文件或者修改时间adduser  创建新用户passwd 设置密码普通文件以-开头目录文件以d开头设备文件以

2016-11-05 22:31:14 160

原创 Linux的初步了解

1.GPL协议 对用户开源但是用户开发新的功能需要开源共享,从而慢慢壮大了Linux2.POSIX由于之前UNIX已经占据了大部分的市场,所以Linux想推广很难。但是推出了这个可移植操作系统接口,实现了兼容UNIX,从而的到了推广;并不局限于UNIX.3.GNU计划 是为了区别于UNIX,即在Linux的新功能UNIX不能使用;实时性是在规定的时间内完成规定的动作;Linux的特

2016-11-04 23:07:15 264

空空如也

空空如也

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

TA关注的人

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