自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 c语言输出格式控制

2021-05-31 15:14:50 195

原创 c语言math函数

double exp(double x);answer = exp (10);printf("e^10 =%f\n", answer);double ldexp(double x, int exp);answer = ldexp(3, 2);printf("3*2^(2) = %f\n", answer);double frexp(double x, int *exp);result = frexp (param , &n);printf ("%f = %..

2021-05-31 09:53:04 313

原创 移位操作(逻辑位移,算术位移)

有算术移位和逻辑移位。逻辑移位是傻瓜式的,全部补0。算术移位考虑很多:1、若是无符号数,不管左移还是右边移动,都补0;2

2021-05-28 15:20:07 2195

原创 #include <time.h>

#include <time.h>clock_t clock(void);这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。clock_t是用来保存时间的长整形数据类型。还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个clock tick,一般取值为1000。核心代码: double TheTimes; printf("做%ld次空循环需要的时间为",i)

2021-05-28 08:48:20 816

转载 memset的用法

1、memset是以字节为单位,初始化内存块。char data[10];memset(data, 1, sizeof(data)); // rightmemset(data, 0, sizeof(data)); // rightint data[10];memset(data, 0, sizeof(data)); // rightmemset(data, -1, sizeof(data)); // rightmemset(data, 1, sizeof(data)

2021-05-26 11:52:57 16445

转载 可变数组/柔性数组/0长度数组

GNU/GCC在标准C/C++基础上做了有实用性的扩展, 零长度数组(Arrays of Length Zero) 就是其中一个知名的扩展。在一个结构体的最后, 申明一个长度为0的数组, 就可以使得这个结构体是可变长的。这种结构体要求:第一,0长度数组放在最后,第二,成员不能只有0长度数组,至少还应该有其他成员。比起在结构体中声明一个指针变量、再进行动态分 配的办法,这种方法效率要高。因为在访问数组内容时,不需要间接访问,避免了两次访存。sizeof这个结构体类型时,0长度数组不算字节;开辟空间(...

2021-05-26 11:16:44 74

转载 assert宏

#define NDEBUG#include <assert.h>void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。使用assert的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include <assert.h>的语句之前插入 #define NDEBUG

2021-05-25 15:42:04 44

转载 git 忽略文件

1、ignore文件均为如下格式:# 以'#'开始的行,被视为注释.# 忽略掉所有文件名是 foo.txt的文件.foo.txt# 忽略所有生成的 html文件,*.html# foo.html是手工维护的,所以例外.!foo.html...

2021-05-22 14:23:08 187

转载 typedef和define定义类型时的区别

尽量用typedef,避免使用define#define PINT int *typedef int * SINT;​​从形式上看它们相似,但在实际使用中却不相同。PINT e,f;SINT g,h; 在经过宏替换后变为:int a,b;INT2 c,d;int * e,f;SINT g,h;在上面的变量中,变量a和b为整型变量,变量c和d也为整型变量;在这里我们看不出宏定义和数据类型定义的区别。而变量e为整型指针变量,变量f为整型变量;变量g和h则...

2021-05-21 17:10:01 138

原创 字节序(大端小端存储)

一个字节(8bit)有一个地址值。很多类型是多字节类型(实际上除了char是单字节类型,short,int,float等都是多字节类型)。多字节类型存储时,高位字节在先叫大端存储,低位字节在先叫小端存储。eg:int t=0xccddeeff;/*0x是16进制表示法,后面一个c/d/e/f代表一个十六进制数,占4个bit位,(4bit*2)byte*4=32位*/当t大端存储时,在内存中的样子是:cc dd ee ff;当t小端存储时,在内存中的样子是:ff ee dd cc;注.

2021-05-17 21:02:43 314

转载 数组名a+1和&a+1的区别

C/C++里面的数组名字会退化为指针,所以数组名a实际指的是数组的第一个元素的地址。而数组名作为指针来讲有特殊性,它正在它所指向的内存区域中,&a的值和a的数值是相同的(可以输出观察一下),但是类型和意义不同。比如int a[10];a就相当于int *,如果是对它加1(a + 1)是相当于a + 1 * sizeof(int)。&a的类型则相当于int **,是所谓指向数组的指针,是数组元素类型的二级指针,对它加1是相当于 &a + 1 * sizeof(a)的,所

2021-05-17 11:12:26 1036 1

转载 scanf输入格式问题

1、当使用"%d%d%d"这种输入格式时,输入可以是一个空格或者多个空格、tab键、回车键分割。输出都是正确的。2、"%d,%d,%d"格式与"%d%d%d"格式基本相同,不同之处在"%d,%d,%d"这种格式在输入时“,”一定要紧跟输入的数字,这里输入的","一定要是英文的。3、scanf("a=%d,b=%d,c=%d", &a, &b, &c);这里输入也要相互对应a=1,b=2,c=3。4、scanf("%c%c%c", &a, &b, &

2021-05-17 10:02:59 9932

原创 c语言数组名

1、C语言规定,数组名代表数组的首地址,也就是第0号元素的地址,所以a==&a[0]。2、但对数组名取地址时却要注意了,在理解“对数组名取地址”这一表达式的含义时一定要记住:数组名是“数组”这种变量的名,这样,&a就好理解了,它取的是“数组”这种变量的地址。&a+1自然也就要跨过整个数组,所有元素长度总和,这么长的一个长度。例如:int a[10],那么&a+1就要跨过10个int的长度。3、数组名a不是变量,a++; a=ptr;这些操作都是错误的。4、size

2021-05-14 11:47:23 2829

转载 c/c++语言sizeof的用法

Sizeof是C/C++中的关键字,它是一个运算符,其作用是取得一个数据类型{基本数据类型(不包括void)、用户自定义类型(结构体、类)、函数类型}或者数据对象的byte长度。特性1:sizeof不能求得void类型的长度。特性2:sizeof能求得void类型的指针的长度。对任何类型的指针变量进行sizeof运算其结果就是4。特性3:sizeof能求得静态分配内存的数组的长度。 Int a[10]; int n = sizeof(a);则结果为40; char c...

2021-05-08 15:07:55 904

转载 c语言memset() 函数

memset() 函数可以说是初始化内存的“万能函数”,通常为新申请的内存进行初始化工作(尤其是数组和结构体这种占用内存大的数据结构),直接操作内存空间。功能:将指针变量 s 所指向的前 n 字节的内存单元用一个“整数” c 替换,注意 c 是 int 型。s 是 void* 型的指针变量,所以它可以为任何类型的数据进行初始化。//void *memset(void *s, int c, unsigned long n);# include <string.h> char

2021-05-08 11:43:08 458

转载 sizeof一个类

一个空的类sizeof()返回1。因为一个空类也要实例化,所谓类的实例化就是在内存中分配一块地址,每个实例在内存中都有独一无二的地址。同样空类也会被实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化之后就有了独一无二的地址了。所以空类的sizeof()为1。sizeof一个函数对象(functor)返回1。functor一般是一个只含有函数的类,理论大小为0,实际为1。*若果一个子类继承一个大小为0的父类,则在子类中其父类大小就为0,不再是1。类内的普通成员函数不参与sizeof()的

2021-05-07 16:04:33 348

原创 32/64位系统类型字节数

32/64位编译器: char :1个字节/1个字节 short int : 2个字节/2个字节int:4个字节/4个字节 unsigned int : 4个字节/4个字节 float:4个字节/4个字节 unsigned long:4个字节/8个字节 long:4个字节/8个字节 char*(即指针变量): 4个字节/8个字节doub...

2021-05-07 15:53:16 706

转载 c/c++字节对齐(内存对齐)

原因:不对齐可能在存取效率上有损失两个对齐参数{*编译器都有一个指定的对齐参数用于 structure, union, and class 成员,在 win32 平台上的编译器都是默认为 8;*每个内置类型自身也都有一个自己的对齐参数,一般来说这个对齐参数就是 sizeof(具体type) 的值;}内置/结构体/数组对齐{*地址对齐是相对于结构的成员来说的,内置类型就没什么对齐不对齐的说法了,结构的成员按照结构中声明的顺序依次排放,对齐的意思是成员相对于结构变量的起始地址..

2021-05-07 15:37:32 159

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除