随笔分类 - C语言
在开发中,C语言是作为一名写代码者必不可缺的技能,通过在网上看视频教程,总结了一些自己的笔记。
摘要:变量的生老病死 所有变量都占着内存,变量什么时候开始占着内存,什么时候从内存中消失,这叫做变量的生存周期。 按照变量的生存周期分类有: ※自动变量auto ※静态变量static ※寄存器变量register ※外部变量extern ※函数也有外部函数extern和静态函数static两种 变量作用
阅读全文
摘要:结构变量地址与成员地址 下列代码: struct student { char name[9]; /*姓名*/ int age; /*年龄*/ struct student *next; /*下一结点指针*/ }; main() { struct student stu,*pstu; int *pi
阅读全文
摘要:动态内存分配 程序1 sizeof与结构 //36-1 sizeof与结构.c #include <stdio.h> #pragma pack(1) //字节对齐 struct student //定义结构类型 { char name[9]; char sex[3]; int age; }*pstu
阅读全文
摘要:多维数组与指针 指向一维数组的指针,定义格式为: int *pa; int a[5]; pa=a; 指向三维数组的指针,定义格式为: int (*pa)[5][8] int a[3][5][8]; pa=a; 从定义格式中我们看出,指向多维数组的指针,只有将第一维变成指针,后面的格式保持不变才能进行
阅读全文
摘要:结构与函数 程序1 结构变量与函数 // 34-1结构变量与函数.c #include <stdio.h> #include <string.h> struct Student { char name[9]; char sex[3]; int age; }; void fun(struct Stud
阅读全文
摘要:传值与传址 父函数如果将变量的钥匙复制一份,再传给子函数,子函数就可以用钥匙开启这个变量,来进行操作。C语言中这种做法叫“传递指针”。 程序1 传址演示:设计一个函数,它可以交换任意两个变量的值。 // 33-1设计一个函数,它可以交换任意两个变量的值.cpp : 此文件包含 "main" 函数。程
阅读全文
摘要:字符串的输入输出 printf和scanf 格式控制符为%s /*s为string的意思*/ 与字符型数据处理不同的是,用%s后面的变量一定是数组名或是字符指针 如: char *pc=”string!”; printf(“%s\n”,pc); 字符数组与指针 定义格式:区别 char *pc=”s
阅读全文
摘要:数组的特殊情况 ※数组在定义时可以省略下标: int ai[]={1,2,3}; 编译器会自动算出此数组在初始化时有3个元素,自动定义成int ai[3]={1,2,3}; 这种方法经常用在字符串上: char str[]={“string”}; ※二维数组初始化时,只有第一维下标可以省略: int
阅读全文
摘要:typedef自定义类型 格式: typedef 新类型名 如: typedef int INTEGER; typedef float REAL; 定义之后就可以用新的类型定义变量: INTEGER i; typedef还有更复杂的用法,比如用它去定义一个数组名,再用这个数组名去定义变量: type
阅读全文
摘要:宏定义 格式: #define 标识符 字符串 如: #define PI 3.1415926 以后程序一看见PI,就自动会用3.1415926替代。 注意: ※宏命令只是简单地替换字符串,但是它不做合法性检查。比如将3.1415926写成3.14T5926,只会在使用了PI的语句上报错,而不会在#
阅读全文
摘要:文件指针 定义: FILE *指针变量名; 如: FILE *fp1,*fp2; 一次定义了两个指向文件的指针 文件操作方式 ※文本方式 文本方式将数据以ASCII码方式存储在文件中,我们电脑中的“文本文件”就是典型的以文本方式存储的文件。 ※二进制方式 音乐、图形这类非文本数据,就比较适合使用二进
阅读全文
摘要:数组与指针 程序1 指向数组元素的指针 // 27-1指向数组元素的指针.c #include <stdio.h> main() { //定义一维数组 int a[10] = {1,2,3,4,5,6,7,8,9,10}; int *p; //定义一个整型指针 p = &a[0]; //取数组a[0
阅读全文
摘要:作用 在小内存时代,经常把一个字节分成好几份来用,以达到节约内存的目的。 现在经常用于网络数据传输,单片机领域……。 注意: ※在进行任何位运算前,首先应将进任何表达式的结果转换成二进制,算完以后再转回原来的进制即可得到结果。 ※不能对浮点数进行位运算。 按位与 格式:二进制&二进制 如: int
阅读全文
摘要:指针的作用 ※处理大量数据:编写大型软件时,函数与函数之间经常会传送大批量的数据。比如一个班有50个学生,有一个子函数的作用就是将这50个学生的成绩进行排序,再返回给父函数。如果用之前学过的“参数复制”方式,我们就要定义一个有50个参数的子函数,并且子函数只能有一个返回值,不能实现这个功能。 这时候
阅读全文
摘要:枚举的作用 有一种变量类型,它的值只有固定的几种选择之一,比如性别(男、女)、硬币的两面(正、反)、星期(周一到周日)、居住省份(36个省市自治区名称)等等,这样的变量适合用enum枚举类型。 使用枚举 说明: ※自定义的类型一般都放在main函数前面,枚举也遵循这个规律: enum sex{boy
阅读全文
摘要:结构数组 既然结构是一个自定义“类型”,那么我们可以像int那样,定义一个结构数组: struct student ArrayStu[10]; 上面的代码一次定义了10个学生。如果同时给这个数组的前2个元素初始化,就写为: struct student ArrayStr[10]={{“张三”,”男”
阅读全文
摘要:。。。 二维数组 类型名 数组名[常量表达式] [常量表达式]; 如: int a[3][3]; 它定义了一个有9个元素的二维数组(3*3),两个维数的下标都是0-2 初始化:int a[3][3]={{0,1,2},{3,4,5},{6,7,8}}; 或 int a[3][3]={{0,1},{5
阅读全文
摘要:模块化与函数嵌套 计算机的最终走向是模拟人工智能和社会,人类在完成复杂任务都采用分工合作的方式,在计算机内部也可以通过函数来划分各程序的功能来完成一个复杂任务。 main函数就相当于程序里的皇帝,必须要有,并且只有一个。它指挥所有的大臣(子函数)协调工作,大臣又可以调用更底层的子函数,相当于指挥小兵
阅读全文
摘要:循环嵌套和break语句 while、do while和for语句都可以形成嵌套,在这里我们着重分析for语句的嵌套。 程序1 简单的for语句嵌套 // 20-1简单for语句嵌套.c #include <stdio.h> //main() //{ // int i, j,k; // k = 0;
阅读全文
摘要:if多路分支 格式: if(表达式) { 若干语句 … } else if(表达式) { 若干语句 … } else if(表达式) { 若干语句 … } else { 若干语句 … } 程序1 学校将考试成绩分为3档,0-59分为不及格,60-89分为及格,90-100分为优秀。现在请编一程序,由
阅读全文

浙公网安备 33010602011771号