结构体字节对齐 c语言结构体字节对齐详解

首先我们来看一个结构体 例题1 struct STUDENT { char a; int b; }data; 如上结构体占多少个字节呢? 思考:char占一个字节,int占四个字节,所以总共占5个字节吗? 其实不是。这就牵扯到结构体中字节对齐的概念。 (什么叫字节对齐?结构体是一种构造数据类型,...

2019-08-16 17:46:32

阅读数 7

评论数 0

容易搞错的压栈问题

编译器对++i和i++的处理是不一样的(存储上不一样) i++这种其实入栈的不是i的值,而是i++这个表达式的值,是通过寄存器进行的压栈; 如果参数是++i则入栈的就是i的值,i的值以最终结果为准。 例如: void main() { int i = 3; printf(&quo...

2019-08-16 15:39:52

阅读数 9

评论数 0

编程找1000之内所有完数,并按照下面格式输出其因子:6its factors are 1,2,3

了解: 一个数如果恰好等于它的因子之和,这个数就称为“完数”。 代码如下: #include<stdio.h> void main() { for (int i = 1; i < 1000; i++) { ...

2019-08-13 11:34:41

阅读数 5

评论数 0

一维数组的删除

删除0 代码如下: int main() { int a[15] = { 1,2,3,0,3,0,2,0,1,3,0,2 }; int len = sizeof(a) / sizeof(a[0]); int i, j; i = 0; ...

2019-08-09 18:00:12

阅读数 63

评论数 0

找次大值次小值

int main() { int a[] = { 1,3,2,7,9,2,4,6,8,20 }; int len = sizeof(a) / sizeof(a[0]); int m1 = a[0] > a[1] ? 0 : 1; int m2 = a[0] > ...

2019-08-09 17:55:32

阅读数 36

评论数 0

鸽巢排序

//鸽巢排序 int main() { int a[] = { 0,2,3,4,0,7,6,5,3,6,2,7,8,2,3,4,7,4,3,2 }; int b[9] = { 0 }; int len = sizeof(a) / sizeof(a[0]); for (int i = 0;...

2019-08-09 16:55:19

阅读数 9

评论数 0

链表--删除指定值(单链表,双链表)

定义结构体: #include<stdio.h> #include<malloc.h> typedef struct _STU { int id; struct _STU* next; }...

2019-08-08 19:05:22

阅读数 33

评论数 0

用指针处理链表—头插、尾插、头删、尾删、插入下标、插入值、清空、翻转

初步了解 链表是一种常见的重要数据结构,可以动态地进行存储分配 头指针head存放一个地址,该地址指向一个元素 链表中每个元素称为结点,每个结点包括两部分,用户需要用的实际数据和下一个结点的地址 最后一个元素不再指向其他元素它的地址存放一个NULL(空地址) 先建立一个链表 typedef str...

2019-08-07 14:45:39

阅读数 11

评论数 0

##给出年月日计算该日是该年的第几天

给出年月日计算该日是该年的第几天 ···c int year,month,day,x; //定义全局变量 int leap(int year) { if((year%4=0&&year%100!=0)||year%400=0) {return ...

2019-07-31 22:32:21

阅读数 11

评论数 0

##计算多个函数的定积分

计算多个函数的定积分* 这里以三个函数为例: #include<stdio.h> #include<math.h> double f1(double x) { return 2 * x*x + 3 * x + 5; } dou...

2019-07-31 17:07:18

阅读数 8

评论数 0

## 拷贝法和指针法对汉字或字符串排序

运用冒泡法对汉字排序的两种方法 方法一: 拷贝法:把3个字符串拷贝交换顺序 #include<stdio.h> #include<string.h> void sort(char p[][15], int len) { char...

2019-07-31 15:53:31

阅读数 17

评论数 0

把两个已按升序排列的数组合并成一个升序数组,要求用函数实现(归并排序)

把两个已按升序排列的数组合并成一个升序数组,要求用函数实现(归并排序) i为a1数组元素下标 j为a2数组元素下标 k为a3数组元素下标 原理:比较i,j数字大小,当i<j时,把i中的元素放入a3中,给K++,i++(否则,把j中的元素放入a3中,k++,j++)再比较i和j...

2019-07-30 19:34:15

阅读数 16

评论数 0

#预处理命令常见考点

*了解: 预处理命令:以#开头,独立成行,行尾不用加分号(即可以加,也可以不加) 宏定义: #define 标示符 字符序列 宏定义在编译前会做宏展开(用字符序列替换掉代码中的标示符),替换的过程被称为宏展开; 有点:1.书写便利; 2.可读性好; 3.便于修改; 易错点: 1 ...

2019-07-29 09:33:11

阅读数 3

评论数 0

#逆序和顺序输出的简单方法--调用函数

顺序,逆序 顺序输出: 调用函数做顺序输出: 结果: 逆序输出: 只需将 fn1(a / 10); printf("%d ", a % 10);互换; 结果: 例如: 编写一个函数,输入一个4位数,要求输出这四个数字字符,但每两个数字间空一个空格。此类的题就可以这样做。 ...

2019-07-27 18:45:09

阅读数 4

评论数 0

5阶魔方阵

5阶魔方阵 思路: 1.首先把1放在第一行的正中间; 2.其后每个数放在前一个数的右上角(i-1,j+1); 3.如果右上角被占,则放在前一个数的正下; #include<stdio.h> //int main() //{ // const int n ...

2019-07-25 15:09:11

阅读数 8

评论数 0

值得注意的无限循环语句

** 无限循环语句 ** ****了解: goto无条件跳转 for循环中的()和:不可省略,其余均可省略;for(;;)等价于while(1)for循环表达式1只执行1次。 第一种: while(1) { printf("…\n"); } .第二种: for(;

2019-07-20 18:12:06

阅读数 12

评论数 0

*用for循环求“水仙花数”和“玫瑰花数”

【 用for循环求水仙花数和玫瑰花数】 初步了解 for循环: 1.表达式:for(单次表达式1;条件表达式2;末尾循环体3) { 中间循环体4; } 2.执行顺序:表达式1——表达式2——表达式4——表达式3——表达式2——表达式4——表达式3… 编码实践 用for循环求水仙花...

2019-07-19 23:21:22

阅读数 20

评论数 0

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