c编程基础知识点(编程常用10个知识点)
c编程基础知识点(编程常用10个知识点)int func_name(const void *arg1 const void *arg2) 其返回值必须为:compare函数必须是如下的形式:(4)变元num指出数组中元素的数目(5)size说明每个元素的大小(按字节)(6)compare指向的函数用于比较数组的两个元素
1.常用的4个返回关键词 2.const修饰的指针- const离谁最近 const就修饰谁
- const修饰谁 谁就不能变
const char *p; //*p不能变 char const *p; //*p不能变 char * const p; //p不能变 const char * const p; //p和*p都不能变 3.string.h中的内存操作函数
注:如果源和目标参数有重叠 使用memmove比memcpy有保障
4.time.h中常用时间函数//函数举例 #include <stdio.h> #include <time.h> int main(int argh const char *argv[]) { struct tm *local; time_t tm; tm = time(NULL); local = localtime(&tm); printf("Local time and date:%s\n" asctime(local)); local = gmtime(&tm); printf("UTC time and date:%s\n" asctime(local)); return 0; } /**程序运行结果 * Local time and date:Sat May 10 16:05:18 2013 * UTC time and date:Sat May 10 08:05:18 2013 */ 5.排序函数qsort()
(1)函数原型
void qsort(void *buf size_t num size_t size int (*compare)(const void * const void *));
(2)头文件stdlib.h
(3)函数qsort()使用了QuickSort算法对buf指向的数组进行排序.QuickSort算法一般被认为是最佳的通用排序算法
(4)变元num指出数组中元素的数目
(5)size说明每个元素的大小(按字节)
(6)compare指向的函数用于比较数组的两个元素
compare函数必须是如下的形式:
int func_name(const void *arg1 const void *arg2)
其返回值必须为:
数组必须按照升序排序 最低地址处存放最低元素 如果数组中 不含关键字(key) 函数返回空指针
(7)程序举例#include <stdio.h> #include <stdlib.h> int main(int argh const char *argv[]) { //变量定义 int comp(const void * const void *); void printEveryElemntOfArray(int count int *array); int i; int num[12] = {14 5 9 7 6 0 91 4 1 3 2 8}; //排序前 printf("Original array:"); printEveryElemntOfArray(12 num); //排序操作 qsort(num 12 sizeof(int) comp); //排序后 printf("Sorted array:"); printEveryElemntOfArray(12 num); return 0; } int comp(const void *num1 const void *num2) { return *(int *)num1 - *(int *)num2; } void printEveryElemntOfArray(int count int *array) { for (i = 0; i < count; i ) { printf("%d" array[i]); } printf("\n"); } 6.四舍五入函数(math.h)
//程序举例 #include <stdio.h> #include <math.h> int main(int argh const char *argv[]) { double number = 123.54; double down = 0; double up = 0; down = floor(number); up = ceil(number); printf("number = %5.2lf\n" number); printf("down = %5.2lf\n" down); printf("up = %5.2lf\n" up); return 0; } /**运行结果 *number = 123.54 *down = 123.00 *up = 124.00 */ 7.计算x的y次幂
double pow(double x double y) 8.延时函数
unsigned sleep(signed seconds) //头文件unistd.h 9.由一个日期 怎么知道是星期几?
①mktime()
②localtime()
③或用如下代码
// 0 = sunday int dayOfWeek(int year int month int d) { static int t[] = {0 3 2 5 0 3 5 1 4 6 2 4}; y -= m < 3; return (y y / 4 - y / 100 y / 400 t[m - 1] d) % 7; }
10.怎样显示一个百分比或转动的短棒的进展表示器
①输出字符\r通常可以复写当前行
②字符\b代表退格 通常会使光标左移一格.记住要用fflush()
如有侵权,请联系删除!
学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C语言或者有兴趣学习C语言的伙伴可以私信回复小编“学习”领取全套免费C语言学习资料、视频