
C语言学习笔记
文章平均质量分 54
lxq_xsyu
这个作者很懒,什么都没留下…
展开
-
c语言学习笔记(1)——c语言的特点
一、c语言概述1.为什么学习c语言?(1)c的起源和发展第一代语言:机器语言 1101第二代语言:汇编语言 add ax,bx;第三代语言:高级语言 a+b;结构化:c fortran basic(子语言vb) pascal(用于教学) 缺陷:结果化语言数据和操作是分离的/*1980年分界限*/面向对象:c++(最重要) java c#(和jav原创 2013-08-05 18:26:23 · 2167 阅读 · 0 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(1)GCC介绍及C语言编译过程
GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发布的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果计算机Mac OS X 操作系统的标准编译器。原创 2014-02-27 21:13:28 · 3804 阅读 · 1 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(6)动态内存分配
一、传统数组的缺点:1、数组的长度必须事先定制,且只能是常整数,不能是变量int len = 5; int a[len]; //error2、传统形式定义的数组,该程序的内存程序员无法手动释放# include void f(void){ int a[5] = {1, 2, 3, 4, 5}; //这二十个字节的存储空间程序员无法手动编程释放它 //只能在本函数运行完毕时由系统自动释放原创 2014-04-13 21:05:22 · 2633 阅读 · 1 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(8)枚举、补码
一、枚举# include enum WeekDay //定义了一个数据类型(值只能写以下值){ MonDay, TuesDay, WednesDay, ThursDay, FirDay, SaturDay, SunDay};int main(void){ enum WeekDay day = WednesDay; printf("%d\n", day); return 0原创 2014-04-17 22:39:08 · 2581 阅读 · 0 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(9)链表
我们至少可以通过两种结构来存储数据数组1.需要一整块连续的存储空间,内存中可能没有2.插入元素,删除元素效率极低。3.查找数据快链表1.查找效率低2.不需要一块连续的内存空间3.插入删除元素效率高计算机术语头指针:存放头结点地址的指针变量头结点:数据类型和首节点的数据类型一模一样头结点是首节点前面的那个节点头结点并不存放有效数据设置头结点的目的是为了方便对链表操作首节点:存放第一个有效数据的节点尾原创 2014-04-17 22:51:28 · 2450 阅读 · 1 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(2)准备知识
一、变量为什么必须初始化?原创 2014-04-12 08:58:38 · 2360 阅读 · 0 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(3)输入输出函数
一、基本的输入和输出函数的用法1、printf() //屏幕输出用法:(1)printf("字符串\n");(2)printf("输出控制符", 输出参数);(3)printf("输出控制符1 输出控制符2。。。\n", 输出参数1,输出参数2,。。。); //注意:后面的输出参数中间必须加 ","(4)printf("输出控制符 非输出控制符", 输出参数);输出控制符包含:%d原创 2014-04-12 09:50:18 · 2524 阅读 · 0 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(5)有趣的指针
一、指针是C语言的灵魂# include int main(){ int *p; //p是变量名,int *表示p变量存放的是int类型变量的地址,p是一个指针变量 int i = 3; //p = i; 这样写是错误的 //p = 4; 这样写是错误的 p = &i; //将i变量的地址给p变量//p保存了i的地址,因此p指向i,修改p的值不影响i的值,修改i的值也不影响原创 2014-04-12 10:55:38 · 2738 阅读 · 4 评论 -
忙里偷闲( ˇˍˇ )闲里偷学【C语言篇】——(4)for == while ?
一、for和while等价替换int i = 1;for (i; i<=100; i++){ sum = sum + 1;}int i = 1;while(i<=100){ sum = sum + 1; i++;}二、从键盘输入一个数字,如果该数字是回文数,则返回yes,否则返回no回文数:正着写倒着写一样的数# includeint main(){ int val, m, s原创 2014-04-12 10:18:45 · 2247 阅读 · 0 评论 -
c语言学习笔记(7)——数组
一、为什么需要数组1.为了解决大量同类型的数据存储和使用2.为了模拟现实世界二、数组的分类1.一维数组为n个变量连续分配存储空间所有的变量数据类型必须相同所有变量所占的字节大小必须相等初始化:完全初始化int a[5] = {1, 2, 3, 4, 5};不完全初始化,未被初始化的元素自动为零。int a[5] = {1, 2, 3};不初始化,原创 2013-08-06 21:24:28 · 1802 阅读 · 0 评论 -
c语言学习笔记(12)——补码
补码编码在计算机中存储数据的方式原码也叫 符号——绝对值码最高位0表示正 1表示负, 其余二进制位是该数字的绝对值的二进制位如 5 ———— 00000101 -5 ———— 11110101原码简单易懂加减运算复杂存在加减乘除四种运算,增加了CPU运算的复杂度零的表示不唯一反码反码运算不便,也没有在计算机中应用移码移码表示数值平移n位原创 2013-08-07 09:34:14 · 2412 阅读 · 0 评论 -
c语言学习笔记(14)——算法
链表算法:1.通俗定义:解题的方法和步骤2.狭义定义:对存储数据的操作对不同的存储结构,要完成某一个功能所执行的操作是不一样的比如:要输出数组中所有的元素和输出链表中所有元素的操作是不一样的这说明算法是依附于存储结构的,不同的存储结构,所执行的算法是不一样的3.广义定义:广义的算法也叫泛型数据无论是如何存的,对该数据的操作是一样的原创 2013-08-07 10:13:13 · 1983 阅读 · 0 评论 -
c语言学习笔记(13)——链表
链表算法:1.通俗定义:解题的方法和步骤2.狭义定义:对存储数据的操作 3.广义定义:广义的算法也叫泛型无论数据是如何存储的,对数据的操作都是一样的我们至少可以通过两种结构来存储数据数组1.需要一整块连续的存储空间,内存中可能没有2.插入元素,删除元素效率极低。3.查找数据快链表1.查找效率低2.不需要一块连续的内存空间2.插原创 2013-08-07 09:34:28 · 1904 阅读 · 0 评论 -
c语言学习笔记(6)——for和while循环
for和while等价替换--------------------------int i = 1;for (i; isum = sum + 1;}--------------------------int i = 1;while(isum = sum + 1;i++;}--------------------------从键盘输入一个数字,如果该原创 2013-08-06 21:21:43 · 1836 阅读 · 0 评论 -
c语言学习笔记(10)——结构体
------------------------------------------------------------------# include struct Student{ //Student可以看成一种数据类型int age;float score;char sex;};int main(void){struct Student st = {80,66原创 2013-08-06 21:27:21 · 1979 阅读 · 0 评论 -
c语言学习笔记(11)——枚举
# include enum WeekDay //定义了一个数据类型(值只能写一下值){MonDay, TuesDay, WednesDay, ThursDay, FirDay, SaturDay, SunDay};int main(void){enum WeekDay day = WednesDay;printf("%d\n", day);retur原创 2013-08-06 21:28:18 · 2064 阅读 · 0 评论 -
c语言学习笔记(2)——预备知识
c语言预备知识1.cpu 内存条 硬盘 显卡 主板显示器 之间的关系硬盘里的《猛龙过江》(双击)--->内存条 cpu---->显卡,声卡--->显示器2.hello word程序如何运行起来?编译 .c--->连接 .exe--->运行3.什么是数据类型?4.什么是变量?变量的本质是内存中一段存储空间变量名和这段存储空间的地址发生关联5.cpu 内存条 v原创 2013-08-06 18:50:10 · 1906 阅读 · 0 评论 -
c语言学习笔记(9)——指针
指针是c语言的灵魂-----------------------------------------------------------------------------# include int main(){int *p; //p是变量名,int *表示p变量存放的是int类型变量的地址,p是一个指针变量int i = 3;//p = i; 这样写是错误原创 2013-08-06 21:26:20 · 2045 阅读 · 0 评论 -
c语言学习笔记(3)——输入输出
一、基本的输入和输出函数的用法printf() //屏幕输出用法:(1)printf("字符串\n");(2)printf("输出控制符", 输出参数);(3)printf("输出控制符1 输出控制符2。。。\n", 输出参数1,输出参数2,。。。);注意后面的输出参数中间必须加 “,”(4)printf("输出控制符 非输出控制符", 输出参数);输出控制符包含原创 2013-08-06 21:17:03 · 2068 阅读 · 0 评论 -
c语言学习笔记(4)——流程控制
一、什么是流程控制程序代码执行的顺序流程控制分类顺序执行选择执行定义有选择的执行某些代码分类ifswitch循环执行定义某些代码会被重复执行分类forwhiledo whilebreak和continue--------------------------------------------------------------原创 2013-08-06 21:18:57 · 1887 阅读 · 0 评论 -
c语言学习笔记(5)——进制
进制1.什么叫进制? 逢n进1;2.把r进制转成十进制a*r^0+b*r^1+c*r^2.....3.把十进制转成r进制185----->(r进制)185不停的除r取余,最后把余数倒过来写。4.不同进制所代表的数据之间的关系同一个数据的不同的表示形式一些琐碎的知识1.前自增和后自增运算符的区别和关系?++i i++相同:最终都使i的值加1;原创 2013-08-06 21:20:15 · 2097 阅读 · 0 评论 -
c语言学习笔记(8)——函数
学完c语言的函数可以理解面向过程的语言函数是c语言的重点一、为什么需要函数?1.避免了重复性操作2.有利于程序的模块化(每一个功能可以用不同函数去实现)二、什么叫做函数?逻辑上:能够完成特点功能的独立的代码单元物理上:能够接收数据能够对接收的数据进行处理能够将处理的结果返回总结: 函数是个工具,他是为了解决大量类似问题而设计的函数可以当做一个黑匣子(不原创 2013-08-06 21:25:27 · 2089 阅读 · 0 评论 -
内存的对齐和补齐
关于对齐和补齐先来看一段代码: 1 #include 2 3 typedef struct Goods{ 4 char name[18]; //18 5 double price; //8 6 char special; //1 7 int num; //4 8 short s; //2 9 } Good转载 2014-11-26 21:57:55 · 1898 阅读 · 0 评论