自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 什么时候数组和指针是一样的

什么时候数组和指针是一样的The C Programming Language ed. 2 ,P99as format parameters in function definition char s[];and char* s;are equivalent;1.表达式中的数组名(与声明不同)被编译器当作指向该数组第一个元素的指针2.下标总是与指针的偏移量相同3.在函数参数的生命中,数组名被编译器当作指向该数组第一个元素的指针....

2020-12-19 14:21:48 176 1

原创 C语言数组下标可以为负数

C语言数组下标可以为负数个人觉得[]被实现为*(array+i)的话那自然要和i为负数的时候统一.并且似乎将指针索引隐式转换成正数并不能带来什么好处, 访问一个很大的索引未必比访问一个绝对值小的负数来的更加安全(虽然可能都是危险行为)...

2020-12-19 14:20:51 1794 1

原创 C++类成员初始化

初始化类的成员变量有三个位置进行初始化:声明时初始化:初始化列表初始化( 成员变量初始化的顺序是按照在那种定义的顺序)以下三种情况下必须使用初始化成员列表一、需要初始化的数据成员是对象,且该对象不能默认构造。(这里包含了继承情况下,通过显示调用父类的构造函数对父类数据成员进行初始化);因为使用初始化列表可以不必调用默认构造函数来初始化,而是直接调用拷贝构造函数初始化。二、需要初始化const修饰的类成员;(C++11后,声明时初始化也可以)三、需要初始化引用成员数据;对于一补充:c++ p

2020-12-19 14:19:41 1294 1

原创 C 内存布局 Memory Layout of C Programs

C 内存布局 Memory Layout of C ProgramsA typical memory representation of C program consists of following sections.Text segmentInitialized data segmentUninitialized data segmentStackHeap1. Text Segment:A text segment , also known as a code segment or

2020-12-19 14:18:06 267 2

原创 NULL and nullptr

NULL and nullptr#if defined(__need_NULL)#undef NULL#ifdef __cplusplus# if !defined(__MINGW32__) && !defined(_MSC_VER)# define NULL __null# else# define NULL 0# endif#else# define NULL ((void*)0)#endif#ifdef __cplusplus#if def

2020-12-19 14:16:26 130 1

原创 void main 与 main(void)

void main 与 main(void)第二个答案:https://www.zhihu.com/question/358133724Returns: a pointer to void if successful, or NULL if not.void main似乎是一个遗留问题,在之后void main应该是个ub ,编译器不会执行类型检查,汇编正常执行有的编译器或许会添加上return 0;而对于main(void):取自:https://www.zhihu.com/ques

2020-12-19 14:15:34 1814 1

原创 指针与数组并不相同

指针与数组并不相同《C专家编程》对于char a[9] = "abcdefg"; c = a[i];编译器符号表具有一个地址9980 运行时步骤1:取i的值,并将它与9980相加 运行时步骤2:取地址(9980+i)的内容char *p; c = *[p];编译器符号表具有一个符号p,它的地址为4624 运行时步骤1:取地址4624的值,就是 '5081' 运行时步骤2:取地址5081的内容多了一次额外的提取当你定义为指针,但以数组方式引用ch

2020-12-19 14:13:40 67 1

原创 缓冲区溢出

缓冲区溢出https://docs.microsoft.com/zh-cn/windows/win32/SecBP/avoiding-buffer-overrunsBuffer overruns can occur in a variety of ways. The following list provides a brief introduction to a few types of buffer overrun situations and offers some ideas and resou

2020-12-19 14:12:31 59 1

空空如也

空空如也

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

TA关注的人

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