c语言基础知识入门笔记,C语言指针基础的笔记

1,C语言指针基础的笔记p1 p2本来没有任何关系的,执行了以上语句之后,p1 p2是两个不同的指针 , 但是这两个指针指向了相同的内容,就是整数a指针和你刚接触计算机语言一样 , 刚开始觉得特抽象,学进去了就觉得不就这么回事吗,指针是c/c++的精华,没学好指针就可以说你没学好c/c++,初学感觉没什么用,数组可以胜任,当深入学习后你会发现不用指针的程序效率很低 。
2 , C学习笔记一 C语言和汇编语言的区别C学习笔记(一) C语言和汇编语言的区别2016-07-11 09:43 162人阅读 评论(0) 收藏 举报 分类:C学习笔记(13) 版权声明:本文为博主原创文章 , 未经博主允许不得转载 。C学习笔记(五) C语言和汇编语言的区别 C语言和汇编语言的区别:汇编:效率高,对硬件的可操控性更强 , 体积小,不易维护,可移植性很差;C:效率比较低,硬件可操控性比较差,目标代码体积大,容易维护,可移植性很好 。汇编语言运行效率高的原因:1. 汇编语言实质上是机器语言的助记符 。CPU只能运行它所支持的指令集 , 而这些指令集当中的每条指令都是一些二进制数的序列,也就是“0”和“1”的有序组合;“0”和“1”的组合不便于程序员的记忆因此有了“MOV A 0x40”等这样的助记符 。所以汇编语言编译成CPU可执行的机器语言其实只要做一个翻译的动作就好了 。而C语言编写完程序后,需要通过编译器将C语言编译成与相应CPU指令集对应的机器语言 。汇编语言与机器语言是一一对应的 。但是C语言呢?当然没这么好事了 。C语言的语法是固定的 , C语言编写的程序要编译成CPU能读懂的机器语言指令没办法一一对应 , 因此需要有编译规则了,所以运行效率低一些 。也可以说,C语言,是面向程序员的语言,而汇编语言是直接面向CPU的语言 。2. 汇编是直接面对CPU的语言,只要是在指令集支持的范围内,汇编语言可以直接而灵活地管理包括特殊功能寄存器、通用寄存器、存储单元的每一个字节 , 甚至是每一个bit 。C语言对内存的使用及管理功能也是很强大的,但毕竟还是受制于语法 。举个最简单的例子,C语言当中没有对应三字节或是五字节的变量类型,要么int型,要么long型,所以每次申请必须是固定的字节数,势必造成内存使用上的浪费 。而大部份汇编语言根本没有这样的语法 , 在伪指令的帮助下(其实也只是提高可读性),汇编语言程序可以使用任意字节数的变量,当然处理起来比C语言麻烦得多,最终还是一个字节一个字节地拼接处理,而用C语言写程序就轻松了,不用管这些,最终编译器会搞定嘛 。而轻松的代价就是造成了浪费 。而内存使用效率不高同时也会影响到整个程序的整体效率 。C语言与汇编的不同适用场合1:若只有较简单的逻辑操作、逻辑算法、简单运算,使用汇编会得到较为精准的代码,但用c也同样可以做到 。2:若掺有复杂运算、浮点运算、非线性方程等,汇编难度很大,而C语言作为一种高级语言,有简洁紧凑,使用灵活的语法机制,编写复杂程序容易得多 。3:每一款处理器各自的汇编语法大都不一样,若仅使用汇编,可扩充性、可移植性都很差,用c就会好的多 。4:对硬件进行初始化的操作,使用汇编语言 。
3,C语言考试必备基础知识点整理去百度文库,查看完整内容>内容来自用户:暗香飞度C语言考试必备基础知识点整理【考点1】C程序C语言程序结构有三种:顺序结构,循环结构(三个循环结构),选择结构(if和switch)【考点2】main函数每个C语言程序中main函数是有且只有一个 。读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择) 。【考点3】存储形式计算机的数据在电脑中是以二进制的形式保存 。最低的存储单元是bit(位),位是由为0或者1构成 。byte是指字节,一个字节=八个位 。数据存放的位置就是它的地址 。【考点4】注释是对程序的说明 , 可出现在程序中任意合适的地方,注释从“/*”开始到最近一个“*/”结束,其间任何内容都不会被计算机执行,注释不可以嵌套 。【考点5】书写格式每条语句的后面必须有一个分号,分号是语句的一部分 。一行内可写多条语句,一个语句可写在多行上 。【考点6】标识符合法的用户标识符考查:合法的要求是由字母,数字 , 下划线组成 。有其它元素就错了 。并且第一个必须为字母或则是下划线 。第一个为数字就错了 。C语言标识符分如下3类(1)关键字 。它们在程序中有固定的含义,不能另作他用 。如int、for、switch等 。(2)预定义标识符 。预先定义并具有特定含义的标识符 。如【考点注意【c语言基础知识入门笔记,C语言指针基础的笔记】
4,C语言笔记五structenumtypedef等 成员表列由若干个成员组成 , 每个成员都是该结构的一个组成部分 。对每个成员也必须做类型声明 。其形式为:类型声明符 成员名;例如:注意,最后括号外面的;分号是不可少的。结构定义之后,才可以进行变量声明 。凡声明为结构stu的变量都由上述4个成员组成 。由此可见 , 结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合 。声明结构变量有以下三种方法 。使用上面定义的stu为例:如:也可以用宏定义使一个符号常量来表示一个结构类型 。例如:例如:这种形式的声明的一般形式为:例如:这种声明的一般形式为:第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构变量 。在程序中使用结构变量时,往往不把她作为一个整体来使用 。在ANSI C中除了允许有相同类型的结构变量相互赋值以外,一般对结构变量的使用,包括 赋值、输入、输出、运算 等都是通过结构变量的成员来实现的 。表示结构变量成员的一般形式为:结构变量名.成员名例如: boy1.numboy2.sex如果成员本身又是一个结构,则必须逐级找到最低级的成员才能使用 。如: boy1.birthday.month结构变量的赋值就是给各成员赋值 。数组的元素也可以是结构类型的 。因此可以构成结构型数组 。初始化赋值:当然也可以在定义 stu结构 时同时声明 pstu 。赋值是把结构变量的首地址赋予该指针变量 , 不能把结构名赋予该指针变量 。如果 boy 是被声明为 stu类型 的结构变量 。则:有了结构指针变量,就能更方便地访问结构变量的各个成员 。其访问的一般形式为:(*结构指针变量).成员名或结构指针变量->成员名例如: (*pstu).num或pstu->num例如:介绍数组的时候 , 曾介绍过数组的长度是预先定义好的,在整个程序中固定不变 。C语言中不允许动态数组类型 。例如:但是又有此需求,为了解决这个问题,C语言提供了一些内存管理函数,这些内存管理函数可以按需要动态地分配内存空间 , 也可把不再使用的空间回收待用 , 为有效地利用内存资源提供了手段 。常用的内存管理函数有3个:例子:分配一块区域 , 输入一个学生数据上面的例子采用了动态分配的办法为一个结构分配内存空间 。每一次分配一块空间可用来存放一个学生的数据,我们可称之为一个节点 。有多少个学生就应该申请分配多少块内存空间 , 也就是说要建立多少个节点 。当然用结构数组也可以完成上述工作,但如果预先不能准确把握学生人数,也就无法确定数组大小 。而且当学生留级、退学之后也不能把该元素占用的空间从数组中释放出来 。用动态存储的方法可以很好地解决这些问题 。有一个学生就分配一个节点,无须预先确定学生的准确人数,某学生退学 , 可删去该节点 , 并释放该节点占用的存储空间,从而节约了宝贵的内存资源 。另一方面,用数组的方法必须占用一块连续的内存区域 。而使用动态分配时,每个节点之间可以是不连续的(节点内是连续的) 。节点之间的关系可以用指针实现 。即在节点结构中定义一个成员项来存放下一节点的首地址,这个用于存放地址的成员,常把他称为指针域 。可在第一个节点的指针域内 存入第二个节点的首地址,在第二个节点的指针域内 又存入第三个节点的首地址,如此串联下去直到最后一个节点 。最后一个节点因无后续节点连接,其指针域可赋值 0这种连接方式,在数据结构中称为“链表” 。链表的基本操作主要有以下几种:例子:建立一个三个节点的链表,存放学生数据 。为简单起见,我们假定学生数据结构中只有学号和年龄两项 。可编写一个建立链表的函数create 。程序如下:create函数 用于建立一个有 n个节点 的链表,他是一个指针函数 , 他返回的指针指向 stu结构 。在create函数内定义了三个 stu结构 的指针变量 。head为头指针,pf为指向两相邻节点的前一节点的指针变量 。pb为后一节点的指针变量 。枚举是一种基本数据类型,而不是一种构造类型,因为他不能再分解为任何基本类型 。enum 枚举名例如: enum weekdayenum weeakday a,b,c;或者为:enum weekday或者为:enum例子:说明:只能把枚举值赋予枚举变量 , 不能把元素的数值直接赋予枚举变量 。如:a=sun;b=mon;是正确的a=0;b=1;是错误的 。如果一定要把数值赋予枚举变量,则必须使用强制类型转换 。如: a=(enum weekday)2;还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号 。例子:typedef定义的一般形式为:typedef 原类型名 新类型名其中原类型名中含有定义部分 , 新类型名一般用大写表示,一般用大写表示,以便于区别 。有时也可用宏定义来代替typedef功能 , 但是宏定义是由预处理完成的,而typedef则是在编译时完成的,后者更为灵活方便 。使用 typedef定义数组、指针、结构等类型将带来很大的方便,不仅使书写简单而且使意义更加明确,因而增强了可读性 。例如:又如:5,c 语言的基本知识1.C提供了三种主要的预处理功能,分别是__宏定义_______、___文件包含______、____条件编译____ 。2.C语言中,数组元素下标下限为___0_____ 。3.数组名作函数参数传递时是__数组首地址______传递 。变量作函数参数时是_值_______传递,4.一个编辑好的*.C源程序,必须经过编译、_连接_______、后才能运行 。5.在C语言中可以用__逐个引用______法和________法引用数组元素 。6.C语言的程序结构有_顺序___、_选择___、循环____三种 。7.在C中 , Char类型变量值可以赋值给___int_____类型变量 。8.使指针P指向数组int a[ ]的首址,写作 __p=a______ ,*(P+1)是a[ _1__ ]的值 9.所谓指针是指_______;指针变量是用于存放___变量地址___的变量;字符串的指针是指__字符串的首地址________ ;函数的指针是指__函数首地址____________ 。10.在函数调用中,一个函数无论直接还是间接地调用自身,该调用称为__递归_____调用 。我是在今学期才开始看c和c,现在c学的基础还好,c算是大概体系了解 , 不过对你这个问题还是挺有感触 , 就以一个初学者态度跟你讲讲我的感受吧!希望让有兴趣发展编程的你能快速进入这个领域 。首先,我不苟同上面哪位仁兄的说法,其实,c和c都可以说是面向过程的语言,但c更提供了面向对象的方法,需要说明一点,c是倡导面向对象编程方法的,应为这是适用现代技术发展的要求,简单理解,面向对象的编程方法就是预先设置好一些常用的 , 实用的类库,当编程时要用到时,引用就可以了(通过对类进行实例化),就好像是预先生产出一部洗衣机,要洗衣服时候直接把衣服放进去 , 打开洗衣机的启动按钮就可以了 , 在面向对象编程中,假如我们已经有了要引用的类库(这些类也可以自己编),我们只要做“启动洗衣机按钮”这个动作就可以了,这就是面向对象编程 。面向过程的编程,简单理解,就是除了一些基本的类似输入输出,数学函数之外,基本都是要全部一条龙的自己设计 。c和c都是ms公司出的,它还有的c#就是完全面向对象的高级语言 , 功能非常强大,与 。net平台一起构成了ms的战略 。不好意思,还是说回你感兴趣的东西吧!其实学c和c不用太多的数学知识 , 它要求你无非两样东西:1.逻辑性2.兴趣,循环控制如“for,while语句”,指针 , 函数调用是学习c和c的核心和重点 , 也是精华所在 , 尤其是c语言 。个人建议:假如你不是要做一个c程员的话,在c学到一定基础很程度时候可以转向java或c#等面向对象高级语言 , 他们联系asp,aspx和jsp等web系统开发 , 快速开发软件和web系统方面实用性非常强 。也建议可以先从c学起,清华大学出版社的谭浩强的《c程序设计》是一本非常好的适合没编程基?。樯芤埠艹沟紫晗傅拿椋ㄎ揖褪强磕潜臼榈? ,呵呵) , 学习c时 , 不要冒进,认认真真打好基?。?对你以后发展其他语言甚至领域有非常大的帮助 。6,c语言的基础知识入门有哪些c语言入门基础知识点有:c语言的命名;变量及赋值;基本数据类型;格式化输出语句;强制类型转换;不可改变的常量;自动类型转换 。C语言是一种通用的、面向过程式的计算机程序设计语言 。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发 。C语言能以简易的方式编译、处理低级存储器 。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言 。尽管C语言提供了许多低级处理的功能 , 但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译 。c语言入门基础知识:1、c语言的命名编程时给变量或者函数起的名字就是标识符 。C语言的标识符是不可以随便起名字的,必须遵守一定的规则 。C 语言规定 , 标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线 。在使用标识符时还有注意以下几点:(1)标识符的长度最好不要超过8位 , 因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时,则被认为是同一个标识符 。(2)标识符是严格区分大小写的 。例如Imooc和imooc 是两个不同的标识符 。(3)标识符最好选择有意义的英文单词组成做到"见名知意" , 不要使用中文 。(4)标识符不能是C语言的关键字 。想了解更多C语言关键字的知识,请查阅WIKI 。2、变量及赋值变量就是可以变化的量 , 而每个变量都会有一个名字(标识符) 。变量占据内存中一定的存储单元 。使用变量之前必须先定义变量 , 要区分变量名和变量值是两个不同的概念 。就好比:住在房间里的客人与房间号是两个不同的概念 。变量定义的一般形式为:数据类型 变量名;多个类型相同的变量:数据类型 变量名, 变量名, 变量名...;变量名和标识符的命名规范完全相同 。注意:在定义中不允许连续赋值,如int a=b=c=5;是不合法的 。变量的赋值分为两种方式:1.先声明再赋值2.声明的同时赋值 。3、基本数据类型C语言中的数据也是有类型的,C语言中 , 数据类型可分为:基本数据类型 , 构造数据类型,指针类型,空类型四大类 。4、格式化输出语句格式化输出语句 , 也可以说是占位输出,是将各种类型的数据按照格式化后的类型及指定的位置从计算机上显示 。这样做的好处,是有利于计算机能够准确的将我们所要类型数据给我们 。其格式为:printf("输出格式符",输出项);5、不可改变的常量在程序执行过程中 , 值不发生改变的量称为常量 。C语言的常量可以分为直接常量和符号常量 。直接常量也称为字面量,是可以直接拿来使用,无需说明的量 , 比如:整型常量:13、0、-13;实型常量:13.33、-24.4;字符常量:a、M字符串常量:”I love php!”在C语言中,可以用一个标识符来表示一个常量 , 称之为符号常量 。符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量值;符号常量的标示符一般习惯使用大写字母,变量的标示符一般习惯使用小写字母,加以区分 。6、自动类型转换数据类型存在自动转换的情况,自动转换发生在不同数据类型运算时,在编译的时候自动完成 。自动转换遵循的规则就好比小盒子可以放进大盒子里面一样 , 下图表示了类型自动转换的规则 。7、强制类型转换强制类型转换是通过定义类型转换运算来实现的 。其一般形式为:(数据类型) (表达式);其作用是把表达式的运算结果强制转换成类型说明符所表示的类型 。注意:double类型的数据的格式符 %f或%lf 。

    推荐阅读