随笔分类 - C/C++
C++/C—函数指针
摘要:C++/C—函数指针 函数名的本质就是一个函数指针,也是一个地址 所以也可以利用函数指针来调用函数处理,就像调用变量的指针来调用变量处理一样 函数指针定义方式 void test() { } 第一种:先定义出函数类型,再通过类型定义函数指针 typedef void(FUNC_TYPE)(); FU
阅读全文
结构体内存偏移量
摘要:# 结构体内存偏移量 ## 获结构体属性偏移: ### 采用指令 offsetof()函数返回变量在结构体中的偏移值 ```offsetof(结构体名,变量名)``` ### 通过偏移量来获取内存 但是在结构体中会有内存对齐的情况产生,所以不能直接采用偏移变量对应的内存大小来处理 ###
阅读全文
指针数组和结构体嵌套
摘要:指针数组和结构体嵌套 一维数组名 除了两种情况外一维数组的名字都是数组的第一个元素的指针 1 sizeof统计数组长度,返回的是数组长度的大小 2 对数组名取地址,得到的是一个数组指针,步长为整个数组大小 数组名是一个指针常量,指向是不可变的 数组索引下标可以为负数 数组指针的定义方式 typede
阅读全文
sscanf()的使用
摘要:sscanf()的使用 函数原型: int sscanf( const char *buffer, const char *format [, argument ] ... ); ...表示是一个多参函数,其实就和scanf是一样的,只是从命令行变成了从str中读取 针对于第二个const char
阅读全文
C语言-文件操作下
摘要:文件操作下 各种printf对比记忆 printf--sprintf--fprintf 都是变参函数:参数形参中有"...",最后一个固参通常是格式描述串(包含格式匹配符),函数的参数个数、类型、顺序都由固参来决定。 printf对应的是屏幕输出 printf("hello"); printf("%
阅读全文
C语言文件操作-1-
摘要:读写文件操作与普通的printf、scanf 代码操作平台功能 printf 屏幕 标准输出 scanf 键盘 标准输入 perror 屏幕 标准输出错误 系统文件 功能代码宏定义 标准输入 stdin 0 标准输出 stdout 1 标准错误 stderr 2 系统文件在应用程序执行时会自动打开,
阅读全文
C语言 windows和linux的内存4区模型
摘要:windows下: 代码段: .text段 存放程序源代码(二进制形式) 数据段 只读数据段rodata 存放常量 初始化数据段 .data段 :初始化为非0的全局变量和静态变量 未初始化数据段 .bss段 :初始化为0,未初始化的全局变量和静态变量。程序加载执行前,会将该段整体赋值为0. Stac
阅读全文
C语言细节-const关键字
摘要:const关键字 1 const来定义常量 使用const定义常量并不安全,可以被指针所修改,因此采用define来定义常亮是更好的选择 #include<stdio.h> int main() { const int a = 10; int *p = &a; *p = 20; return 0;
阅读全文
C语言细节-Scanf()
摘要:scanf()接受字符串 1 scanf只会以'\0'为结束(不安全): scanf函数会一直吸收字符串,如果超出了内存范围也会一直读取,直到读到'\0'为止 2 scanf不能接受空格和字符串: 接受字符串的时候碰到空格和换行会自动终止。 3 scanf接受带有空格的字符串 采用正则表达式: ch
阅读全文
gcc编译c语言4步骤
摘要:1. 预处理 -E xxx.i 预处理文件 gcc -E xxx.c -o xxx.i 1) 头文件展开。 不检查语法错误。 可以展开任意文件。 2)宏定义替换。 将宏名替换为宏值。 3)替换注释。 变成空行 4)展开条件编译 根据条件来展开指令。 2. 编译 -S xxx.s 成为汇编文件 gcc
阅读全文
C/C++分文件编写
摘要:步骤: 1.创建.h头文件 2.创建.cpp的源文件 3.在头文件写函数的申明 4.在源文件写函数的实现 在其它文件调用函数时,只需要添加具体的头文件就可以不用添加源文件。
阅读全文
C/C++动态分配内存
摘要:C:malloc和calloc来分配内存: malloc函数原型 void *malloc(unsigned int size) 首先这是一个void 指针函数返回的是一个指向不定的指针,所以在调用这个函数的时候需要强转化为需要的指针类型。然后再在里面添加所需要开辟的空间大小 例子: 1 int *
阅读全文
类的组合
摘要:概念: 1.类中的成员是另一个类的对象 2.可以在已有抽象的基础上实现更复杂的抽象。 类组合的构造函数设计: 原则:不仅要负责对本类的成员数据初始化还要对对象成员初始化 类名::类名(对象成员所需的型材,本类成员形参): 对象1(参数),对象2(参数),。。。。 { 其他函数体 } 首先对构造函数初
阅读全文
类的特殊函数
摘要:构造函数: 目的:在对象被创建的时候,自动对对象进行初始化,不用调用。 形式: 函数名与类名相同 不能定义返回值和return 形参可以有可无 可以是inline 可以重载 可以带默认值 如果没有构造函数就会有个空的构造函数 实现: Clock::Clock(int ....): hour =(x1
阅读全文
浙公网安备 33010602011771号