![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言提高
另寻沧海
这个作者很懒,什么都没留下…
展开
-
linux cpp中精确获取程序的执行时间
clock_gettime使用示例:struct timespec start;struct timespec end;clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&start);long i =0;while(i<10e8){ i++;}clock_gettime(CLOCK_PROCESS_CPUTIME_ID,&end);double start_ms =start.tv_sec*1000+start.tv_nsec/1原创 2021-04-11 21:35:14 · 448 阅读 · 0 评论 -
linux 获取程序执行时间的方法
code:#include <stdio.h>#include <stdarg.h>#include <unistd.h>/*for sleep*/#include <sys/times.h>/*for times*/#include <sys/time.h>/*for getimeofday*///#include <sys/conf.h>/*old system for sysconf*/#include <ti原创 2021-04-11 21:25:06 · 675 阅读 · 0 评论 -
Linux 编程实践-时间与时区 时间的表现形式与解析
时间的三种表现形式1. 时间戳(timestamp, seconds since the Epoch) 即可 1970 年 1 月 1 日 0 时 0 分 0 秒起的 UTC(Universal Coordinated Time)时间的经过的秒数. (UTC 之前也叫 GMT Greenwich Mean Time)2. 时间结构体 struct tm struct tm { int tm_sec; /* seconds after the minute [0-60] *.原创 2021-04-11 21:09:34 · 317 阅读 · 0 评论 -
c/c++中日期和时间的获取
timeStamp() //获取到hour,min,sec,格式为 hh:mm:ssdateStamp() //获取到year,mon,day,格式为 xxxx:xx:xx#include <string>#include <iostream>#include <time.h>// source code from corecrt_wtime.h// Types//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+原创 2021-03-21 21:33:58 · 684 阅读 · 1 评论 -
c++值传递和引用传递
所谓值传递,就是函数调用时实参将数值传入给形参值传递时,如果形参发生改变,并不会影响实参引用传递:被调函数的形参虽然也作为局部变量在栈中开辟了内存空间,但在栈中放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被间接寻址,即通过栈中的存放的地址访问主调函数中的中的实参变量(相当于一个人有两个名字),因此形参在任意改动都直接影响到实参。#include <iostream>using namespace std;void swap(int num1, int .原创 2020-08-19 21:31:08 · 949 阅读 · 0 评论 -
extern C 浅析
extern C 浅析用途:在C++中调用C语言文件C++中有函数重载,会对函数名称做修饰,导致调用C语言的函数链接失败利用extern C可以解决问题方法1:在C++代码中加入告诉编译器 show函数用C语言方式 做链接extern "C" void show();方法2:在C语言的头文件中加入6行代码#ifdef __cplusplus // 两个下划线 __ c plus plusextern "C" {#endif#ifdef __cplusplus //原创 2020-08-18 01:01:59 · 169 阅读 · 0 评论 -
C语言递归方式实现字符串翻转
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>char g_buf[100];//1 通过递归方式,逆向打印//2 递归和全局变量(把逆序结果存入全局变量)//3 递归和非全局变量(递归指针做函数参数)//通过递归方式,逆向打印void inverse02(char *p){if (pNULL){return;}if原创 2020-05-16 10:03:39 · 732 阅读 · 0 评论 -
C语言字符串翻转
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>int inverse(char *src){if (src==NULL){printf(“put in err”);return -1;}int length = strlen(src);char *p1 = src;char *p2 = src + length - 1;原创 2020-05-16 10:02:08 · 231 阅读 · 0 评论 -
C语言求非空格的字符串长度
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>////求非空格的字符串长度,两个参数//void getstringlong(char *src,char *dst)//{// char *tmpsrc = src;// char *tmpdst = dst;// if (srcNULL||dstNULL)// {// p原创 2020-05-16 10:01:03 · 1278 阅读 · 0 评论 -
二级指针三种内存模型——第三种内存模型
在堆上自己分配内存,改变的是指针的指向#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>void printMyArray33(char **myArray, int num){ int i = 0; for (i = 0; i < num; i++) { //printf("%s \n",myArray[i]);原创 2020-05-16 09:58:49 · 100 阅读 · 0 评论 -
二级指针三种内存模型——第二种内存模型
二维数组,交换的是内存块#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>void printMyArray22(char myArray[10][30], int num){ int i = 0; for (i = 0; i < num; i++) { //printf("%s \n",myArray[i]); pr原创 2020-05-16 09:57:05 · 111 阅读 · 0 评论 -
二级指针三种内存模型——第一种内存模型
指针数组,排序改变的是指针的指向#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <string.h>#include <stdlib.h>void printMyArray11(char **myArray,int num){ int i = 0; for (i = 0; i < num; i++) { //printf("%s \n",myArray[i]); prin原创 2020-05-16 09:55:49 · 121 阅读 · 0 评论 -
const基础知识(用法、含义、好处、扩展)
Const好处//合理的利用const,//1指针做函数参数,可以有效的提高代码可读性,减少bug;//2清楚的分清参数的输入和输出特性结论://指针变量和它所指向的内存空间变量,是两个不同的概念。//看const 是放在*的左边还是右边 看const是修饰指针变量,还是修饰所指向的内存空变量#define _CRT_SECURE_NO_WARNINGS#include <s...原创 2020-05-06 09:33:35 · 209 阅读 · 0 评论 -
C语言中%d等的意义
格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。格式字符有d,o,x,u,c,s,f,e,g等。如%d整型输出,%ld长整型输出,%o以八进制数形式输出整数,%x以十六进制数形式输出整数,%u以十进制数输出unsigned型数据(无符号数)。%c用来输出一个字符,%s用来输出一...原创 2020-05-05 17:09:47 · 50719 阅读 · 0 评论 -
C语言指针问题
铁律1:指针是一种数据类型 1) 指针也是一种变量,占有内存空间,用来保存内存地址测试指针变量占有内存空间大小2)*p操作内存在指针声明时,*号表示所声明的变量为指针在指针使用时,号表示 操作 指针所指向的内存空间中的值p相当于通过地址(p变量的值)找到一块内存;然后操作内存p放在等号的左边赋值(给内存赋值)p放在等号的右边取值(从内存获取值)3)指针变量和它指向的内存块是两...原创 2020-05-04 11:20:12 · 491 阅读 · 0 评论 -
堆和栈的区别
一个由C/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。3、全局区(静态区)(static)— 全局变量和静...原创 2020-05-04 11:10:26 · 121 阅读 · 0 评论 -
函数调用模型
内存四区模型和函数调用模型变量传递分析1、一个主程序有n函数组成,c++编译器会建立有几个堆区?有几个栈区?2、函数嵌套调用时,实参地址传给形参后,C++编译器如何管理变量的生命周期?分析:函数A,调用函数B,通过参数传递的变量(内存空间能用吗?)...原创 2020-05-04 10:56:13 · 155 阅读 · 0 评论 -
程序的内存四区模型
流程说明1、操作系统把物理硬盘代码load到内存2、操作系统把c代码分成四个区3、操作系统找到main函数入口执行原创 2020-05-04 09:52:02 · 98 阅读 · 0 评论 -
C语言数据类型字节
数据类型对应的字节数:原创 2020-05-04 09:44:02 · 286 阅读 · 0 评论