
C语言——基础学习
文章平均质量分 67
这是我的学习的一些心得以及一些我认为还可以的笔记,愿在这里记录与分享,如果哪位发现有错误的地方,欢迎指出,感激不尽
百曉生
计算机方面的菜鸟,新手,正在学习中
展开
-
位运算符
位运算符,即进行位操作的运算符。 位操作是程序设计中对位模式按位或二进制数的一元和二元操作。在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多。在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算) ——摘自百度百科、维基百科 C语言有六种位运算符,分别是按位与(&)、按位或(|)、按位异或(^)、按位原创 2015-01-22 21:47:50 · 990 阅读 · 0 评论 -
输入输出函数_1
本篇主要是说一下输入输出函数,对于学C的新手而言,最常用的无非是printf(输出)、scanf(输入)这两个函数,但实际上,还有一些其它的函数,下面会举一些例子说明。 perror函数其原型为void perror(char const *) ,该原型定义在stdio.h中(const与函数类型调换顺序其效果相同)。关于其作用,下面举例说明例1:# include原创 2014-11-24 20:17:20 · 724 阅读 · 0 评论 -
大程序结构
大程序结构它的意思可以说是这样main()里边的代码长了,适合分成几个函数一个源代码文件长了,适合分成几个文件 项目这个需要新建一个项目,然后把相关的文件添加进来有的IDE有分开的编译和构建按钮,前者是对单个源文件编译,后者是对整个项目做链接 头文件把函数原型放到一个头文件中,在需要是在相应的.c文件(源文件)中用include包含,这样可以让编译器在编译时原创 2014-10-12 09:31:30 · 2140 阅读 · 4 评论 -
全局变量和宏
全局变量即定义在所有函数之外(一般都定义在main函数之前,#include头文件下边)的变量,这个是与局部变量(本地变量)所不同的,它可以在任何函数中使用下面举个例子例1:输出结果为: 没有初始化的全局变量会被赋予0这个值,如果是指针,会被赋予NULL,这点通过上面程序的结果即可发现;对全局变量进行初始化时,最好直接用编译时刻已知的值(即数字或常变量等),但最好只原创 2014-09-26 22:38:56 · 2053 阅读 · 0 评论 -
枚举和联合体
枚举 什么是枚举?枚举是一种用户定义的数据类型,它用关键字 enum 以如下语法来声明: enum 枚举类型名字 {名字0, …, 名字n} ; 简单的说,就是把一个事物的可能的结果一一列举出来 怎样使用枚举?下面举个例子例1:原创 2014-08-31 19:45:28 · 2431 阅读 · 0 评论 -
结构体_3
结构体变量和普通的变量相同——在函数内部声明的结构体只能在该函数内部使用,所以通常结构体都是在函数外部声明,这样结构体就可以在多个函数中使用,一般都声明在main函数上边原创 2014-08-28 17:42:47 · 784 阅读 · 0 评论 -
字符串函数_1
字符串的表示方法及输出首先要说的是C语言中没有字符串string这样的数据类型,所以我们要表示字符串,可以使用字符数组,不过,输出字符串时,必须用%s来输出,下面举个例子例1:原创 2014-08-17 22:48:44 · 1956 阅读 · 0 评论 -
关于goto
goto,即无条件跳转指令,具体使用情况将举例说明 例1:原创 2014-07-31 21:46:54 · 918 阅读 · 0 评论 -
使用结构体构造数组举例
下面举个例子,动态构造存放学生信息(这里只有姓名、年龄和成绩)的结构体数组,然后按分数排序输出 例1:原创 2014-05-18 21:54:00 · 1688 阅读 · 0 评论 -
结构体_2
下面先举一个例子例1:# include struct Student{ int age; char sex; char name[100];}; //分号不能省int main(void){ struct Student st = {20, 'M', "张三"}; struct Student * pst = &st; printf("%d %c %s\原创 2014-05-06 22:49:47 · 811 阅读 · 0 评论 -
结构体_1
什么叫结构体把一些基本类型数据组合在一起形成的一个新的复合数据类型,这个叫做结构体。 为什么需要结构体为了表示一些复杂的事物,而普通的基本类型无法满足实际要求。 下面举一个例子例1:# include struct Student //3行{ int age; float score; char sex;}; //8行原创 2014-05-03 14:29:41 · 1050 阅读 · 0 评论 -
跨函数使用内存
首先要说的是,只有动态分配的内存可以跨函数使用,静态分配的内存是不可以跨函数使用的 下面举个例子(静态变量不能跨函数使用)例1:原创 2014-05-01 22:53:06 · 940 阅读 · 0 评论 -
多级指针
所谓多级指针,就是“指针的指针”(需要说明的是,前面那个“指针”是指针变量,后面那个“指针”才是指针,下面也一样,最后一个“指针”是指针,凡不是最后的“指针”都指的是指针变量),“指针的指针的指针”,等等。说多级指针,还是为了在下面更好的说明一下跨函数使用内存的问题,这个回头再说,下面举例说明一下多级指针。例1:# include int main(void){原创 2014-04-25 23:12:18 · 1589 阅读 · 3 评论 -
动态内存分配
动态内存分配【重点难点】传统数组的缺点:1.数组长度必须事现指定,且只能是常整数,不能是变量例子:Int a [5]; //OKInt len = 5; int a [len]; //error 2.传统形式定义的数组,该数组的内存程序员无法手动释放数组一旦定义,系统就为该数组分配的存储空间就会一直存在,除非数组所在的函数运行结束或者说:在一个函数运行期间,原创 2014-04-10 18:31:06 · 1349 阅读 · 2 评论 -
关于指针_2
下面写的是一个关于指针的比较经典的例子——互换两个数例1:# include void huhuan_1(int, int);void huhuan_2(int *, int *);void huhuan_3(int *, int *);int main(void){ int a = 3; int b = 5; // huhuan_2(&a, &b); // hu原创 2014-03-22 16:32:37 · 2337 阅读 · 2 评论 -
关于指针_1
指针的定义地址:内存单元的编号从零开始的非负整数范围:4G[0--4G-1]指针:指针就是地址,地址就是指针指针变量就是存放内存单元编号的变量,或者说指针变量就是存放地址的变量指针和指针变量是两个不同的概念但是要注意,通常我们叙述时会把指针变量简称为指针,实际上它们含义并不一样原创 2014-03-02 17:46:42 · 1710 阅读 · 4 评论 -
关于函数_2
上文已经说了什么是函数、函数的定义以及函数的分类等内容,接下来要说的是关于函数需要注意的问题以及变量的作用域和存储方式,中间还会举一个例子相对详细的说明应用函数对程序的好处。 注意的问题函数调用和函数定义的顺序如果函数调用写在了函数定义前面,则必须加函数前置声明函数前置声明:1、告诉编译器即将可能出现的若干个字母代表的是一个函数2、告诉编译器即将可能出现的若干个字母所代原创 2014-02-11 13:39:58 · 1322 阅读 · 2 评论 -
关于函数_1
什么叫函数?逻辑上:能够完成特定功能的独立的代码块物理上:能够接收数据 [当然也能够不接收数据]能够对接收的数据进行处理能够将数据处理的结果返回 [当然也可以不返回] 如何定义函数?函数的返回值 函数的名字(函数的形参列表){函数的执行体} 1、函数定义的本质是详细描述函数之所以能够实现某个特定功能的具体方法2、return 表达式;的含义:原创 2014-02-09 12:51:57 · 849 阅读 · 0 评论 -
关于数组_1
数组是有序数据的集合,一维数组的格式为:类型标识符 数组名[常量表达式];例如:int a[5];它共有5个元素,这些元素的名字依次是:a[0]、a[1]、a[2]、a[3]、a[4] 为什么需要数组?为了解决大量同类型数据的存储和使用问题为了模拟现实世界例1:# include int main(void){ int a[5] = {1原创 2014-02-05 12:41:32 · 1032 阅读 · 0 评论 -
switch、break与continue的用法
一、switch语句switch语句格式:{case常量表达式1:语句1;case常量表达式2:语句2;…case常量表达式n:语句n;default :语句n+1;}需要注意的是:(一)所有case后面的表达式这能是这几种情况:1、枚举常量(有些书称为枚举元素) 2、数值常量 3、字符常量 4、常变量(只能被赋一个值的变量) 5、宏(二)switch原创 2014-02-03 10:05:43 · 50239 阅读 · 2 评论 -
在DOS环境下添加背景音乐、改变背景颜色、冻结屏幕和调用系统时间
如下例:# include # include # pragma comment (lib, "Winmm.lib")//导入Winmm.lib库int main(){ system("color 6f"); PlaySound("000.wav", NULL, SND_FILENAME | SND_ASYNC|SND_LOOP); //第七行 system("pause");原创 2014-01-31 12:24:02 · 8483 阅读 · 4 评论 -
三目运算符和逗号表达式
三目运算符(? :)格式如下:A ? B : C其等价于:if (A)B;elseC;例如:# include int main(void){ int i; int a, b; printf("请输入两个数字,中间用空格分隔:"); scanf("%d", &a); scanf("%d", &b); i = (a>b ? prin原创 2014-01-29 13:10:50 · 3519 阅读 · 0 评论 -
for循环举例(1+1/2+1/3...+1/99+1/100)
我以前学C语言时学的很不扎实,再加上长时间没有看书,所以忘了许多知识(其实有许多知识当初就没掌握),所以即使做起以前的题来,也很难一步到位,比如说一个关于for循环的小题:求1+1/2+1/3...+1/99+1/100的和。一看到这个题时,我略一思考,即刻写出了代码,代码如下:# include int main(void){ int i; float sum = 0; fo原创 2014-01-23 18:51:00 · 14186 阅读 · 7 评论 -
scanf的用法
说来惭愧,我学编程一年多了,但都没怎么认真学,记得去年教我们C语言课的老师是上了十五节课,每节课差不多俩小时,还有过几次上机课,可惜我课上虽然听的还算是比较认真,但课下却没怎么看书,最终结课时感觉自己学到的实在是不多,而且老师讲的吧,怎么说呢,不能说一点儿也不明白,但感觉老师讲的不是特别清楚,而且因为没有及时复习,所以后来又几乎全忘了,关于scanf的用法,我原本也只知道它是个输入函数,其他的就不原创 2014-01-19 12:06:08 · 34288 阅读 · 7 评论