|
vi: 用vi打开文件 以#开头的都是预编译指令,就是在正式编译之前,编译器做一些预处理的工作 #if 条件语句 程序段1 //如果条件语句成立,那么就编译程序段1 #endif 程序段2//如果条件不语句成立,那么就编译程序段2 #ifndef x//先测试x是否被宏定义过 Read the rest of this entry » 在C语言中 #define dPS struct s * 与 typedef struct s * tPS; 的 这两种声明的区别。 线程与进程的根本区别是把线程作为资源分配单位,而线程是调度和执行单位。每个进程都有自己的主存空间。同一个进程中的各线程共享该进程的主存空间,进程中的所有线程对进程的整个主存空间都有存取权限。 1。选择表ppp2中num重复的记录 SELECT * FROM ppp2 where num in (select num from ppp2 group by num having(count(num>1))) 使用GROUP BY子句和聚合函数对数据进行分组后,还可以使用HAVING子句对分组数据进行进一步筛选:[HAVING<search_condition>] a.SELECT 学号,AVG(成绩) AS ‘平均成绩’ FROM XS_KC GROUP BY 学号 HAVING AVG(成绩)>=85 Read the rest of this entry » (1)SUN/AVG,分别用于求表达式中的所有值项的总和与平均值,语法结构为:SUN/AVG([ALL|DISTINCT]expression) 例如:求选修了101课程的学生平均成绩 SELECT AVG(成绩) AS ‘课程101平均成绩’ FROM XS_KC WHERE 课程号=’101′ Read the rest of this entry » (1)查找选修了全部课程的同学的姓名 SELECT 姓名 FROM XS WHERE NOT EXISTS (SELECT * FROM KC WHERE NOT EXISTS Read the rest of this entry » 存储过程是用户定义的一系列SQL语句的集合,涉及特定表或其他对象的任务,用户可以调用存储过程。而函数通常是数据库已定义的方法,它接收并返回某种类型的值,并且不涉及特定用户表。 (1)定义存储过程 Read the rest of this entry » 首先看看next数组值的求解方法。 例如: 模式串 a b a a b c a c next值 0 1 1 2 2 3 1 2 next数组的求解方法是:第一位的next值为0,第二位的next值为1,后面求解每一位的next值时,根据前一位进行比较。首先将前一位与其next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,向前继续寻找next值对应的内容来与前一位进行比较,直到找到某个位上内容的next值对应的内容与前一位相等为止,则这个位对应的值加上1即为需求的next值;如果找到第一位都没有找到与前一位相等的内容,那么需求的位上的next值即为1。 Read the rest of this entry » |