C语言 些许笔记


static函数  使一个变量长期有效;

函数:abs 求整数的绝对值,fabs求浮点数的绝对值;

z =(x>y) ? x : y  的意思是:如果(x>y)为真,将x的值赋给z,否则将y的
值赋给z

进行倒序时,应当除以二,否则无效

c语言中的非执行语句不会被编译,不会生成二进制的机器指令。

c语言中八进制整型常量的开头是数字0,十六进制整形常量的开头是0x
c语言中实型常量有两种表达方式,:小数形式,小数形式表达的实型常量必须要有小数点; 指数形式,以“e”或“E”后面,跟一个整数来表示以10为底数的幂数,且规定字母“e”或“E”之前,必须要有数字,且e或E后面的指数必须为整数;

取模运算符“%”,二元运算符,,具有左结合性;

指针是用来存放地址的变量,用(类型符 *指针变量名)的形式定义。赋值时,应将某个变量即&x赋给指针变量;

不能在定义结构体的同时,又用结构体类型名定义变量;

关键字typedef的作用只是将c语言中的已有数据类型作了置换,并不是增加新的类型

strlen函数,计算字符串的长度

\t 水平制表符  ,产生一定间隔,使其像一个表格

default 重用在switch语句中,代表默认值

二叉树 基本性质:在任意一颗二叉树中,度为0的叶子节点总是比度为2的叶子节点多一个。

线性结构(线性表):一维数组,队列,栈;
非线性结构:多维数组,树,图;

软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,只是为了发现错误;

程序调试的基本步骤:错误定位,修改设计和代码,以排除错误回归测试,防止引进新的错误;
程序调试统称为:Debug;

数据库应用系统中的核心问题是数据库的设计;
数据库管理系统是数据库的机构,他是一种系统软件,负责数据库中数据组织,数据操纵,数据维护,控制及保护和数据服务等,是一种在操作系统以上的系统软件;

E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。
E-R图中,实体集用矩形,属性用椭圆,联系用菱形;

在变量定义double a,*p=&a中,* 号是一个指针运算符,而非间址运算符;

函数调用中发生的数据传送是单向的;即只能把实参的值传送给形参,而不能把形参的值反向传给实参。因此在函数的调用过程中,形参的值发生改变,而实参中的值不发生改变;

宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头;宏展开不占运行时间,只占编译时间,函数调用占用运行时间;

do-while 和 while循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和正规的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在正规的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 FALSE 则整个循环立即终止)。

栈是按先进后出的原则组织数据的,
队列是先进先出的原则组织数据;

算法的空间复杂度是指算法在执行过程中所需的内存空间;

软件设计中,划分模块的准则是高内聚,低耦合,有利于提高模块的独立性;

结构化程序的设计的思想包括:自顶向下,逐步求精,模块化,限制使用goto语句;

转义字符以‘\'开始,若要表示字符”\",应写为“\\";

if是C语言的关键字,在其后一对圆括号中是表达式,表达式之后只能是一条语句,成为if子语句。如果该子句中含有多个语句(两个以上),则必须使用复合语句,即用一对花括号把一组语句括起来,用为复合语句可以看成是”一条语句“,在}之后不能再加分号。还有就是if后面,必须使用圆括号,括号后面不要随意加分号;

switch后面测试表达式的值类型只能是整数类型或字符型数据;
case与常量表达式之间必须用空格隔开;
break  
在switch中:强行中止循环,立即跳出switch语句体;
在do-while,for,while循环语句中,可是程序终止循环,而执行后面的语句。

continue
结束本次循环,继续下一次循环。即continue语句后面的语句不被执行,但不影响下一次循环;

while后面圆括号中的表达式可以是C语言中任意合法的表达式,但不能为空,有它来控制循环体是否执行;

do是C语言的关键字,必须的while联合使用。循环由do开始,至while结束。一定要注意的是:在while(表达式)后面的“;分号”不能丢,它表示do-while语句的结束。

for循环中的”表达式1(循环变量赋初值)”、“表达式2(循环条件)”和“表达式3(循环变量增量)”都是选择项,即可以省略,但是“;”,三个分号不能省略;
三个表达式都省略,例如:for(;;)语句,相当于:while(1)语句;

break  强行中止循环;

枚举型(enum),是用户自定义的一种简单的数据类型,该类型的每个值需要在定义是具体罗列出来。
例如: 对三种颜色所定义的枚举类型:
enum color{red,yellow,blue};

标识符定义常量NULL,它的值为0;

宏定义一般放在源程序文件的开始部分,宏标识符只在该文件内有效。如要终止其作用域可使用#undef命令;

在C语言中,可以使用结构体(struct)来存放一组不同类型的数据。结构体的定义形式为:
struct 结构体名{
    结构体所包含的变量或数组
};
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。请看下面的一个例子:
struct stu{
    char *name;  //姓名
    int num;  //学号
    int age;  //年龄
    char group;  //所在学习小组
    float score;  //成绩
};

malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 calloc() 函数。

结构体成员运算符:“->"  "."  ,"."只能用于结构体变量,"->"只能用于结构体指针,不能混用;
当p指向stu后,stu.name、(*p).name和p->name三种表达形式是等价的;

memset函数,内存字节操作函数,对每个字节清零; 

事例:if(a==b)
判断a与b是否相等,如果a等于b,那么if语句成立,运行后面的程序。

exit(1)表示异常退出程序;    exit(0)表示正常退出程序;

strcmp函数,比较两个字符是否相等;

位运算符
按位与运算符“&”,对应的两个二进位都为1时,结果位为1,否则为0;
按位或运算符“ | ”,只要对应的两个二进位有一个为1,结果位就为1;
按位异或运算符 ”^ ",对应的两个二进位不相同时,结果位为1,相同为0;
求反运算“ ~ ”,对参与运算的数的各二进位按位求反,1换0,0换1;
左移运算“ << ",将<<左边的运算数的各二进位全部左移若干位,
例如 :a<<4     ,a=00000011(十进制3),左移4位后为00110000(十进制48)
右移运算 ”>> ", 将>>左边的运算数的各二进位全部右移若干位,
例如: a=15,a>>2  ,000001111右移为00000011;

递归(汉诺塔游戏)hanoi函数模块
hanoi(m,'A','B','C');这个算法的目的就是将m个积木块,从'A‘柱经过'B'柱移到'C‘柱上
给你照着代码讲吧。
void hanoi(int n,char one ,char two,char three)    
{
  void move(char x,char y);//声明打印函数
  if(n==1)   //如果只有一个积木块,直接将这个积木块从A移到C
      move(one,three);  //打印A->C
  else  //如果大于一个积木块,
    {
       hanoi(n-1,one,three,two); //首先将n-1个从A经过C移到B上,此时A上剩最大的一个积木
       move(one,three) //将最大的积木从A移到C上,打印A->C
       hanoi(n-1,two,one,three); //之后将n-1个从B经过A移到C上,完成。
     }
}
整个递归的过程你可以用n=2,n=3在脑力里过一遍就应该没有问题了。

他就是循环调用hanoi这个方法,直到n==

(math.h)函数
绝对值abs(x)或者fabs(x)、正弦sin(x)、余弦con(x)、正切tan(x)、平方根sqrt(x)、
自然指数exp(x)、幂pow(x,y)、自然对数log(x)lnx、向下取整ceil(x)等等、、、、
  例如:
          abs(-12)=12;fabs(-3.26)=3.26;sqrt(36)=6.0;pow(2,5)=32.0等等;
    floor(4.6)=4.0;ceil(4.6)=5.0;floor(-4.6)=5.0;ceil(-4,6)=-4.0;
函数返回类型:abs(x)为int,其余为double,使用的系统头文件:math.h  #include<math.h>;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值