c语言
文章平均质量分 66
CC_YXK
这个作者很懒,什么都没留下…
展开
-
结构体的大小
1、占位符 当结构体内容为空时,仍然会有一个字节的大小,如下:int main(){ //占位符 typedef struct {}A; A a; printf("%d\n",sizeof(a)); return 0;} 2、对齐 将结构体中占字节最多的类型的字节数作为对齐数 结构体成员申请内存时,每一次分配对齐数大小的...原创 2018-05-01 23:05:17 · 262 阅读 · 0 评论 -
static
static在面向过程和面向对象设计中有不同的用法:在面向过程设计中的static应用于普通变量和函数,不涉及类 面向对象设计中的static主要说明static在类中的应用一、面向过程设计中的static1、静态全局变量在全局变量前加上static关键字,该变量就被定义成一个静态全局变量。特点:该变量在全局数据区分配内存 未经初始化的静态全局变量会自动初始化为0(非静态...原创 2019-02-21 22:36:28 · 225 阅读 · 0 评论 -
通过代码判断大端和小端
大端:数据的高字节存放在低地址;数据的低字节存放在高地址 小端:数据的高字节存放在高地址;数据的低字节存放在低地址例如在32位机器上存放0x123456789,其大小端模式存储如下:如何通过代码检测机器是大端还是小端?方法一:# include<iostream>using namespace std;union text{ int a; char b...原创 2019-01-15 21:27:09 · 1698 阅读 · 0 评论 -
fopen函数
函数:fopen 函数原型:FILE * fopen(const char * path,const char * mode); 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。 一般而言,打开文件后会做一些文件读取或写入的动作,若打开文件失败,接下来的读写动作也无法顺利进行,所以一般在fopen()后作错误判断及处理。 ...原创 2018-09-13 14:09:41 · 1911 阅读 · 0 评论 -
函数指针--回调函数
简单声明一个函数指针并不意味着它可马上就可以使用。和其他指针一样,对函数指针执行间接访问之前必须把它初始化指向某个函数。如下代码: # include <stdio.h>int fun(int x){ return x;}int main(){ int (*pf)(int) = &fun;//声明并初始化函数指针,该指针指向fun()函数 ...原创 2018-08-12 10:40:11 · 305 阅读 · 1 评论 -
数据类型类型隐式转换
一、算术运算符中的转换规则注意:以下转换都是在运算过程中自动转换的 横向转换 图中的横向转换表示在运算过程中必须进行转换,即使运算符两边的数据类型相同也要发生转换,例如两个short型的数据进行加法操作,需要将这两个数据先转换成int型再做运算,运算结果也为int型。纵向转换 图中的纵向箭头是指在运算符两侧数据类型不同是需要进行的转换。例如long型数据和int型数据...原创 2018-08-11 10:38:18 · 579 阅读 · 0 评论 -
输出整数各位数字
一、求整数的位数 对于这个问题,以数字n为例,我们可以采用“去尾法”,所谓“去尾法”就是设置一个计数器,依次去除该数字的最后一位,每去除一次计数器+1,直到该数等于零,此时计数器的数字就是该数的位数.具体步骤如下:设置计数器 figures 去除整数最后一位(n/=10) 计数器+1(figures++) 不断重复2、3步,直到n等于0源代码:int GetFigur...原创 2018-03-10 11:20:38 · 4088 阅读 · 0 评论 -
位运算概述
在计算机内部是以二进制进行数据存储的,位运算就是直接对整数在内存中的二进制位进行操作。位运算包括按位与、按位或、按位异或、按位取反、左移、带符号右移、无符号右移。一、按位与(&) 相同位的两个数字都为1则为1,否则为0 例: 0101 & 1100= 0100 二、按位或(|) ...原创 2018-03-16 13:54:29 · 380 阅读 · 0 评论 -
进制转换
一、二进制转十进制 讲十进制n转换为二进制数/* 十进制转换二进制(n) 1、n % 2 作为二进制的最末尾 2、n /= 2; 3、重复1 2步直到n==0*/void Shift1(int n)//非递归写法{ if(n==0) { printf("%d",0); } int a[100]; int i = 0; while(...原创 2018-03-16 15:23:25 · 467 阅读 · 0 评论 -
指针算数运算
一、指针+1 1、指针+1并非该指针变量加一个字节,指向下一个字节地址,而是加一个单元格 2、计算指针+1具体加几个字节的方法是,给指针去掉一个型号,让后用sizeof()求出字节大小例:int* p; p++;//指针p+1,加4字节 sizeof(int) == 4 double* p; p++;//指针p+1...原创 2018-03-17 23:05:40 · 346 阅读 · 0 评论 -
const
一、const用法修饰变量: 1、定义常变量 例:const int i = 100; //表示定义一个变量i,i的值为100,不可以被修改2、数据类型对于const是透明的 例:int const = const int修饰指针: const int* cp = &a; //应用用法二数据类型透明即为:const...原创 2018-03-26 19:45:35 · 207 阅读 · 0 评论 -
如何判断是指针还是数组或者函数
对于一些复杂的定义,有时候很难判断到底定义的是指针还是数组甚至是函数,对于这些定义可以用下面的办法来解决第一步:确定它的属性(通过优先级来判断) 例: int (*p)[4] //()的优先级高于[], //因此p与()结合, ...原创 2018-03-28 21:09:52 · 1110 阅读 · 0 评论 -
动态建立数组
在很多情况下,我们不知道所要建立数组的大小,而是想根据需求动态的建立数组。但是通常使用 int arr[n] 这样的写法编译器会报错,因为n是变量。例如以下代码int n = 10;int a[n]; 对于这种情况我们可以用以下的方法解决。一、建立动态数组 用到的头文件:# include <stdlib.h>用到的函数:m...原创 2018-03-29 23:50:47 · 12779 阅读 · 3 评论 -
struct和class的区别
C++中的struct已经不同于C语言中的struct,C++中的struct几乎和class具有相同的功能,差别十分细微,在C++语法上,class和struct主要有以下3点区别:1、默认继承权限struct默认的继承权限是public class默认的继承权限是private2、成员的默认访问权限struct默认的访问权限是public class默认的访问权限...原创 2019-02-22 16:13:18 · 193 阅读 · 0 评论