C语言篇
xiao鸿呀
这个作者很懒,什么都没留下…
展开
-
C语言基础1
1.首先说下为什么学C语言C语言有一个统一的标准,像汇编语言等就没有、C语言编译效率高,操作系统需要效率高的语言编程,可以直接操作硬件(对寄存器操作),C语言属于比较低级的语言,所以对程序员友较高的要求。2.基本数据类型空类型、字符型char、数值型其中数值型包括:实型(float单精度型6位小数,double双精度型15位小数),int整型(短整型、整型、长整型)(整型又按有无符号分为无...原创 2019-07-21 20:36:30 · 528 阅读 · 0 评论 -
C语言之主函数与预处理
1.主函数注意:main函数运行时,可以在命令行后加上参数例题:用main函数实现对输入的数排序引申:atoi()函数:把数值型字符串转换成整数预处理(1)头文件#include<stdio.h>:在系统指定的/usr/include中查找#inclue"stdio.h" :先在当前目录下寻找,找不到再去自己指定的目录下(gcc时加上 -I),最后去系统默认的us...原创 2019-07-31 18:58:00 · 703 阅读 · 0 评论 -
C语言之高级指针
1.指针函数(函数名代表地址)与函数指针(1)指针函数(2)函数指针注意:调用函数如果无参数要声明成void,不声明代表可以是任意类型思考题:第一题:fp是一个指针,指向函数,函数有一个整型形参,函数的返回值是指针,这个指针指向有10个元素的数组,每个元素都是整型指针第二题:array是有五个元素的数组,每个元素都是指针,这个指针数组指向一个函数,这个函数无形参,返回值就指针,这个...原创 2019-07-31 16:51:00 · 369 阅读 · 0 评论 -
C语言之大端模式与小端模式
大端模式与小端模式的定义(字节序)大端模式:数据的高字节在低地址,低字节在高地址小端模式:数据的高字节在高地址,低字节在低地址怎么判断系统是大端模式和小端模式首先来看两个知识点:(1)联合体的成员共享内存,给b赋值,输出a也可得到b的值(2)数组在内存中从低地址向高地址排列(a[0] 一定在低地址,a[n]一定在高地址)于是,我们可以在联合体里面定义一个两个字节的数组,一个s...原创 2019-07-27 15:53:19 · 1555 阅读 · 0 评论 -
C语言之结构体与共同体
1.结构体声明(1)结构体声明后的分号一定要加(2)person是结构体名(2)typedef 声明新类型名来代替已有的类型名,通俗来讲就是给结构体类型取个简单的名字(4)结构体也是一种类型,可以包含int,short,char类型等2.结构体定义赋值(1)引用结构体变量方式:变量名.成员名,指针变量->成员名(2)定义同时通过大括号赋值, 类似数组。(3)定义后再赋值,...原创 2019-07-27 14:55:03 · 2257 阅读 · 0 评论 -
C语言之指针
指针的概念(1) 指针也是一种变量,用来存放其他变量地址的变量,指针的地址也是最开头的地址(2) int a = 0int *p = &a (int * 是一种数据类型,所以p 用来存放地址)*p = 100 等价于 a = 100(因为p指向a)注意:系统通过变量名或者地址来访问内存(3)*有两个含义:定义时表示后面的变量是指针;使用时表示取值(4)无论什么类型的...原创 2019-07-25 18:31:59 · 160 阅读 · 0 评论 -
C语言之关键字
关键字修饰变量局部变量(动态存储,未赋初值初始化为乱码)(1)registerregister是局部变量,不能取地址,因为register变量存储在寄存器中,不是在内存,一般循环变量定义成register变量来提高效率(2)auto局部变量默认为auto变量,存储在动态区外部变量(静态存储,未赋初值初始化0)(1)extern想在其他 .c 文件调用本文件 .c 中定义的变...原创 2019-07-25 12:39:41 · 309 阅读 · 0 评论 -
C语言之字符串操作
遍历 查找 替换 删除 逆序1.遍历2.查找某个字符在字符串的第几位2.1查找某个字符串在另一个字符串中的位置3.替换4.删除5.逆序原创 2019-07-23 20:39:28 · 158 阅读 · 0 评论 -
C语言之排序
1.冒泡排序原创 2019-07-23 16:41:54 · 106 阅读 · 0 评论 -
C语言之位运算
位运算基本运算符:& (按位与)|(按位或) ~(按位取反) ^(按位异或)1.请编写一个c函数,该函数给出一个字节中被置为1的位的个数2.输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.3.输入一个整数a,再输入两个整数p1,p2(p1,p2<32),将该整数的二进制表示方法中从右端开始的p1到p...原创 2019-07-23 16:18:18 · 329 阅读 · 0 评论 -
C语言之函数调用
1.函数调用步骤(1)通过函数名找到函数入口地址(2)给形参分配空间(3)传值(值传递,地址传递)(4)执行函数体(5)返回(6)释放栈空间注意:形参类型与个数 要与实参一致,printf("%p\n",add)函数名是地址例一:用函数调用方法实现和函数输出结果:this is f1…result = 3例二:用函数调用的方式实现冒泡排序运行结果:1 3 4 ...原创 2019-07-23 15:10:22 · 506 阅读 · 0 评论 -
C语言之数组2(字符数组)
1.定义及初始化char a[5] = {‘h’,‘e’, ’ l’, ‘l’ , ‘o’}char a[5] = “hello” × , **因为字符串隐含结束标志 ‘\0’**所以越界char a[6] = “hello” √char a[32] = {0} 字符数组定义的时候记得初始化注意:字符串用双引号,字符用单引号2.输入打印char a[32] = {0};...原创 2019-07-23 13:32:50 · 920 阅读 · 0 评论 -
C 语言之数组1(一,二维数组)
1.一维数组(1)定义:int a[k] × , int a[5] √定义数组时,长度一定是确定的(除非初始化确定几个元素,可省去下标)例如:int a[] = {1,2,3,4,5}int a[5]:分配了20个连续字节空间,对于整个数组来说:a[0](低字节)----- a[4](高字节),但是在a[0]等元素的内部不确定地址的高低排序(与系统设定有关,大端...原创 2019-07-23 10:39:08 · 484 阅读 · 0 评论 -
C语言常用算法
利用数组,条件表达式,条件语句,循环语句来简化算法1.关于因子的问题(1)打印100以内素数(因子只有1和本身)(2)200-300之间不能被三整除的数,五个一行输出,关键在于怎么五个一行输出(通过设置一个变量,到五之后换行,再重新复制0,如此循环)(3).求两个数的最大公约数,最小公倍数(判断输入的两个数a和b的大小,最大公约数的循环初值利用较小的数,最小公倍数的循环初值利用较大的那...原创 2019-07-21 21:31:21 · 1255 阅读 · 0 评论 -
linuxC语言内存分配
Linuxc运行程序时分配虚拟地址空间4G,按照1:3的比例分给内核态与用户态,内存=内核态 + 用户态内核态:留给系统用用户态:(1)栈空间:存放局部变量,形参(2)堆空间:malloc,realloc(3)代码段:存放代码(4)数据段:全局变量(全局数据区),静态变量(静态数据区),字符串常量(只读数据区)(5)其他注意:栈空间是操作系统管理的,堆空间是用户管理的易错:cha...原创 2019-07-31 19:09:38 · 400 阅读 · 0 评论