C 语言
文章平均质量分 58
ibbo
Android Developer !
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1-vi编辑器与编译
VI编辑器命令模式 进入编辑模式, i a o 或者 I A O 进入底行模式, shift + ; 或者 空格 复制 yy : 复制一行 3yy : 复制3行 鼠标选中 ,y 剪切 dd : 删除一行 3dd : 删除三行 dd : 删除一行粘贴 : p 撤销 : u 重做 : ctrl + l 底行模式 w 保存 q原创 2017-02-03 14:54:33 · 491 阅读 · 0 评论 -
12-Shell脚本_练习
变量 : 使用变量时, 必须在变量名前加$ 用户自定义变量 : 没有数据类型和存储类型 直接定义使用, 在定义时必须赋值 在 = 的左右两端不要出现空格符 如果值出现空格, 需要使用” “ echo $var : 不关心不可见字符 echo “$var” : 原样输出 *exit : 退出 , 结束* 一条命令的输出结果作为值赋给变量时, 需要使用 ` ` (命令置换符)vi 分屏 :原创 2017-02-03 15:04:50 · 352 阅读 · 0 评论 -
13-Makefile基本语法
* head.h : 函数声明 、头文件名(C库、系统调用) 、全局变量 、 宏替换、结构体类型声明make 文件 : 1、 Makefile makefile GNUmakefile 在同一目录下只能出现一者 执行方式 : make 2、test.mk test.AIX test.Linux 执行方式 :make -f test.mk 目标文件:依赖文件 通过依赖文件得到目标文件的命令原创 2017-02-03 15:05:03 · 209 阅读 · 0 评论 -
14-链表用法_案例代码
链表代码 1 :#include <stdio.h>typedef struct node{ int data[10]; int newdata[0];}list_t;int main(int argc, const char *argv[]){ list_t list; printf("%d\n",sizeof(list_t)); printf("%p\n",&li原创 2017-02-03 15:05:19 · 216 阅读 · 0 评论 -
15-双向链表用法_案例代码
双向链表代码 1 :#include <stdio.h> #include <stdlib.h>typedef int data_t;typedef struct node{ data_t data; struct node * front; struct node * next; }duolist_t;//创建 duolist_t* create_duolist() {原创 2017-02-03 15:05:43 · 230 阅读 · 0 评论 -
16-栈的几种用法_案例代码
栈:代码 1 : stack#include <stdio.h> #include <stdlib.h>//类型 typedef struct node{ int *data; int top; int size; }stacks_t;//创建 stacks_t * create_stack(int size) { if(size<0||size>1024)原创 2017-02-03 15:05:58 · 239 阅读 · 0 评论 -
17-tree_queue_linkstack_linkqueue_代码案例
代码 1 : tree#include <stdio.h> #include <stdlib.h>typedef struct node{ int data; struct node * lchild; struct node * rchild;}tree_t;//创建 tree_t* create_tree(int data,int max) { if(data>ma原创 2017-02-03 15:06:21 · 282 阅读 · 0 评论 -
18-io_ctags配置
I/O man 1 命令 man 2 系统调用 内核给用户留出的接口 man 3 库 以二进制形式存在的函数集合 文件类型 : -普通文件 ( 二进制、ASCII ) p 管道 d 目录 s 套接字 l 链接 c 字符设备 b 块设备 Input: 输入:数据由内核空间流向用户空间 流: 用来表示数据的方向 标准IO中 系统预定义的3个流: stdin标准输入 std原创 2017-02-03 15:06:49 · 296 阅读 · 0 评论 -
19-io_文件权限掩码_动态库_静态库
I/O* 标准IO:库 带缓存 通过流FILE * 操作文件* 文件IO:系统调用 不带(内核缓存) 通过文件描述符操作文件* 文件描述符: !最小未用非负整数 作为一个索引来操作文件使用open : flags:必须3选1:O_RDONLY,O_WRONLY,O_RDWR O_APPEND 追加 O_CREAT 使用这个参数必须指定mode O_EX原创 2017-02-03 15:07:32 · 356 阅读 · 0 评论 -
11-linux-c基础2
diff : 比较两个文件 diff:比较两个文件 diff file1 file2 : 如果在终端屏幕没有任何显示结果, 代表两个文件内容一致 打补丁 : 1、diff -ruN old new > diff.txt 2、cd old 3、patch -p1 < ../diff.txt : 打补丁操作 patch -Rp1 < ../diff.txt : 撤销补丁操作 压缩文件: (操原创 2017-02-03 15:04:33 · 193 阅读 · 0 评论 -
10-linux-c基础_管道_putty配置
内核版本 : 主版本号.次版本号.释出版本-修订版本 主、次为奇数 : 开发版 主、次为偶数 : 稳定版 软件包 : 软件包名称软件版本-修订版本体系架构.deb * sudo : 借助某些用户的权限完成操作 , 默认为root用户.软件包安装dpkg : 1、离线安装, 安装的软件包必须事先存在. 2、不会对软件包的依赖关系进行检查 安装 : sudo dpkg -i 软件包 卸载 : sud原创 2017-02-03 15:03:34 · 364 阅读 · 0 评论 -
2-变量类型_变量_内存分区
八进制 与 二进制 一位八进制数 对应 三位二进制数 十六进制 与 二进制 一位十六进制数 对应 四位二进制数 进制 二进制 : 0b 或者 0B 八进制 : 0 0123 十六进制 :0x 或者 0X 数据类型:short 短整型 占用 2个字节 int 整型 占用4个字节 16位系统下 , int 占2个字节 long 长整型 占用4个字节(32) 8个字节(64位系统下)原创 2017-02-03 14:57:23 · 297 阅读 · 0 评论 -
3-man手册_字符串处理函数
man 手册 man 1 : 命令 man 2 : 系统调用 man 3 : C库函数 参数查询 vim -t 参数名 继续向下查找; ctrl + ] 返回上一层; ctrl + o vim -t 需要安装 ctags 解压内核 tar -vxf 压缩文件 切换到内核目录下ctags -R 生成tags文件 配置~/.vimrc 加入一行 set tags+=tags路径 格式输出函数 : in原创 2017-02-03 14:57:59 · 475 阅读 · 0 评论 -
4-循环练习_数组
循环练习:1、 求出1到10000 之间的完全数.#include <stdio.h>int main(int argc, const char *argv[]) { int num, sum = 0; int i; for(num = 1; num <= 10000; num++) { for(i = 1, sum = 0; i <= num/2; i+原创 2017-02-03 14:58:46 · 423 阅读 · 0 评论 -
5-二维数组_练习_字符串处理函数_指针
二维数组 : 存储类型 数据类型 数组名[行数][列数] 列数不能够省略 , 行数可以省略 数组元素的引用 : 数组名[行标][列标] 练习 :1.找出二维数组中的最大值, 如果有多个最大值, 找出其位置以及数值.(不要排序).#include <stdio.h>int main(int argc, const char *argv[]) { int a[3][4] = {{1,23,4,原创 2017-02-03 15:01:24 · 655 阅读 · 0 评论 -
6-字符指针_删除字符串中的空格_register_指针数组
字符指针 : 在给字符指针初始化赋值时, 如果赋的值为字符串常量的首元素的地址; 则在后面的代码中, 不能通过该指针去修改字符串常量中字符的值. 练习 :删除字符串中的空格. “hell o” === “hello”,输入的为”quit” ; 结束程序.#include <stdio.h> #include <string.h>int main(int argc, const char原创 2017-02-03 15:02:06 · 1690 阅读 · 2 评论 -
7-函数指针_字符串转整数练习
当参数为:一个普通变量时 变量的值 : 复制传参 变量的地址 : 地址传参 函数 : 获取两个变量num1 = 123, num2 = 456; 完成数值交换 ==> num1 = 456, num2 = 123; 练习 :输入一个字符串 “1234” , 得到整型值 1234 ;#include <stdio.h>int fun(char *p) { int num = 0;原创 2017-02-03 15:02:39 · 317 阅读 · 0 评论 -
8-数据类型_处理5个学生的数据
数据结构练习: 构造一个学生类型 : 姓名, 年龄, 学号, 成绩 处理5个学生的数据; 循环输入学生信息; 找出成绩最高的学生, 并且打印其信息(注意:不要排序). 按照成绩排序, 并且打印其信息. #include <stdio.h>typedef struct student { char name[128]; int age; int id; int scor原创 2017-02-03 15:03:07 · 529 阅读 · 0 评论 -
9-malloc练习
malloc 练习 :#include <stdio.h> #include <stdlib.h> #include <string.h>void getmemory(char *p) { p = (char *)malloc(100); } int main(int argc, const char *argv[]) { char *str = NULL; getmemor原创 2017-02-03 15:03:20 · 324 阅读 · 0 评论 -
20-进程_pstree_kill_fork_execl_waitpid_练习
进程* 进程 程序的一次动态执行过程进程生命周期: 创建:创建虚拟地址空间、地址空间分段,创建task_struct结构(PCB进程控制块) 调度:内核管理task_struct结构组成的链表,根据优先级和进程属性分配时间片 执行:进程获得时间片到cpu中执行 消亡:进程结束,回收虚拟地址空间,由父进程回收task_struct结构。 虚拟地址空间分段: stack:栈区,存放局部变量、函数传原创 2017-02-03 15:08:04 · 332 阅读 · 0 评论
分享