![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
故渊~
这个作者很懒,什么都没留下…
展开
-
结构体知识点总结
对于结构体的知识点,我主要分为以下几点来讲解:结构体的声明、结构体类型的创建、结构体成员的访问、结构体的初始化、结构体内存对齐、位段。 1.结构体的声明struct stu{ char name[20]; //名字 int age; //年龄 char sex[5];...原创 2018-03-16 14:30:57 · 1352 阅读 · 0 评论 -
大小端字节序--数据在内存中的存储
什么是大端小端:大端存储模式:指数据的低位保存在内存的高地址处,而数据的高位保存在内存的低地址处。小端存储模式:指数据的低位保存在内存的低地址处,而数据的高位保存在内存的高地址处。判断当前机器的字节序方法一:int main(){ int i = 1; //二进制为:0001 char *a = (char *)&i; if (*a == 1) printf("小...原创 2019-02-24 17:49:46 · 863 阅读 · 0 评论 -
结构体(struct)和联合体/共同体(union)的联系和区别
详见——http://blog.csdn.net/dreamback1987/article/details/8504943所占内存——结构体所有成员变量所占内存之和,联合体最长变量的内存大小struct各个变量赋值互不影响,独自占有内存空间(自定义数据类型),union某一变量的改变会覆盖处于内存起始位置的变量值(相互覆盖)union各个成员共用一段内存地址,在不同的时间保存不同类型、不...转载 2019-02-24 19:14:26 · 3021 阅读 · 0 评论 -
一维数组及二维数组的传参问题
一维数组的传参方法一:传数组名编译器会把这里的 array 解析成指向整型元素的指针,也就是数组的首地址,方括号里面的数组编译器会忽略,写不写都可以,最好不写,以免引起误解。void test(int array[]){}方法二:传指针array是指向数组的指针,数组名是首元素的地址。 但是在 sizeof(数组名) 和 &(数组名) 两组情况下,数组名指整个数组。void...原创 2019-03-01 12:33:18 · 1019 阅读 · 0 评论 -
32位机器和64位机器中数据类型大小的比较
32位机器和64机器只有 long int 和 指针两种类型的大小不同。原创 2019-02-20 18:41:09 · 573 阅读 · 0 评论 -
static在C语言和C++中的作用--详解
在C语言中static的作用第一、static修饰全局变量,即为全局静态变量时,这个变量从定义开始到文件结束时可见,不能在其他文件中访问。(隐藏)这个变量在全局数据区内分配内存。如果没有初始化,默认为0。第二、static修饰局部变量,即为局部静态变量时,修饰静态局部变量只执行一次,延长了局部变量的生命周期,直到程序运行结束以后才释放。这个变量在全局数据区内分配内存。如果没有...原创 2019-02-20 21:27:40 · 620 阅读 · 0 评论 -
有符号数与无符号数的比较 与 整型提升
C语言和C++中,有很多基本数据类型,如char,inf,float等,与此同时,还有一种特殊的数据类型容易被我们忽略–无符号数,它由unsigned修饰,如unsigned int等,当我们忽略了数据有无符号,就会引起一些错误。我们来看代码一: char a = -1; signed char b = -1; unsigned char c = -1; printf("a=%d,b=...原创 2019-02-26 12:42:10 · 1789 阅读 · 0 评论 -
C语言中%d,%o,%f,%e,%x的意义
格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。不同类型的数据用不同的格式字符。 格式字符有d,o,x,u,c,s,f,e,g等。 如%d整型输出,%ld长整型输出,%o以八进制数形式输出整数,%x以十六进制数形式输出整数,%u以十进制数输出unsigned型数据(无符号数)。%c用来输出一...原创 2019-03-09 16:41:06 · 1447 阅读 · 0 评论 -
如何快速转载别人的博客 详解
一、在要转载的博客处右键点击检查/F12二、在Elements中寻找body标签,点击三角标,打开body标签三、在body中找div class=“container clearfix” id=“mainbox”,点击三角标,打开div标签四、在div标签中找到main,进而找到 class=“blog-content-box”五、在class=“blog-content-box...原创 2019-04-03 15:31:52 · 205 阅读 · 0 评论 -
#define定义宏函数 的正确使用
如何使用宏来定义一个自定义函数呢?首先我们来看下面这段代码#define SQUARE(x) x*xint main(){ int a = 5; printf("SQUARE(a): %d\n",SQUARE(a)); //这个值为25 printf("SQUARE(a+1): %d\n", SQUARE(a + 1)); //第一反应是打印36,其实打印的是11}运行结果:...原创 2019-02-23 15:33:16 · 15521 阅读 · 3 评论 -
C语言运算符优先级列表(超详细)
本篇文章是对C语言中运算符的优先级进行了详细的分析介绍,需要的朋友参考下每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖!C语言运算符优先级优先级运算符名称或含义使用形式结合方向说明1[]数组下标数组名[常量表达式]左到右...转载 2019-02-23 15:14:04 · 6406 阅读 · 2 评论 -
三子棋 小游戏
对c语言有了初步的认识,就尝试写了小游戏,三子棋,个人觉得三子棋的算法还有待提高,电脑落棋靠随机值,但没有更智能的堵并且下直线,算法方便还请多多指教!现在上代码:game.h#ifndef _GAME_H_#define _GAME_H_#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <...原创 2017-12-08 12:33:52 · 138 阅读 · 0 评论 -
乘法口诀表
//实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,//输入9,输出9 * 9口诀表,输出12,输出12 * 12的乘法口诀表。#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<Windows.h>int main(){ int a=0; printf("请输...原创 2017-12-04 10:42:27 · 134 阅读 · 0 评论 -
内存对齐规则--图文详解
首先得了解 结构体对齐规则:1)第一个成员在与结构体变量偏移量为0的位置处。2)其他成员变量要对齐到某个数字(对其数)的整数倍的地址处。对其数=编译器默认的一个对其数与该成员大小的较小者。vs中默认的值是8Linux中默认的值是43)结构体总大小为最大对其数(每一个成员变量都有一个对其数)的整数倍。4)如果嵌套了结构体对齐到自己的最大对其数是整数倍处,结构体的整体大小就是最大对齐...原创 2018-09-19 16:52:39 · 4491 阅读 · 1 评论 -
define的使用 及 程序预处理详解
程序的运行1.程序的加载过程有用户触发,由操作系统完成,载入内存。2.程序的执行从 main 函数开始。3.开始执行代码。调用堆栈存储函数的局部变量和返回地址,调用静态内存 存储 静态变量。4.终止程序。正常或意外终止。预定义符号(预处理阶段)FILE //进行编译的源文件 (文件名) %sLINE //文件当前的行号 %dDATE //文件被编译的日期 %sTIME //文件被...原创 2018-09-19 16:05:09 · 501 阅读 · 0 评论 -
动态顺序表的实现
写这篇博客主要是讲述一下动态顺序表的实现,其中包含 打印、创建、销毁、尾部插入、尾部删除、头部插入、头部删除、在顺序表的pos位置上插入元素x、删除顺序表pos位置上的元素、顺序表中查找数据x,返回该元素在顺序表中的位置、修改pos位置的数据、冒泡排序、选择排序、查找已排序顺序表中的元素x 等操作。话不多说,我们直接上代码: pSeq.h#define _CRT_SECURE_...原创 2018-03-19 19:34:14 · 207 阅读 · 0 评论 -
【剑指offer】二进制中1的个数
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。把一个整数减去 1 ,再和原整数做与运算,会把该整数最右边一个 1 变成 0 。一个整数的二进制表示中有多少个 1 ,就会进行多少次这样的操作。举个例子:二进制数 1100,它的第二位是从右边数起的第一个 1,减去 1 后,第二位变成 0 ,它后面的两位 0 变成 1 ,而前面的 1 保持不变,所以结果是 1011。...原创 2019-02-21 16:06:05 · 69 阅读 · 0 评论 -
不创建临时变量(第三个变量),实现两个数的交换
实现两个数的交换最简单的方法是创建一个临时变量,然后进行交换。代码如下:#include<stdio.h>int main(){ int a = 10; int b = 20; int c = 0; c = a; a = b; b = c; printf("%d %d",a,b); return 0;}但是在不创建临时变量的条件下应该怎么做呢?异或方法...原创 2019-02-21 18:26:35 · 572 阅读 · 0 评论 -
sizeof与strlen的区别 数组的运算 字符指针
这篇博客是写数组的相关运算,主要涉及 sizeof操作符、strlen函数、以及指针的使用。数组名代表整个数组的时候只有两种情况:sizeof(数组名),这里的数组名代表整个数组。&数组名,这里的数组名表示整个数组。sizeof和strlen区别1. strlen(char*)函数求字符串实际长度,遇到字符’\0’停止,不包含字符’\0’。 sizeof()返回的是变量所占...原创 2019-02-22 17:12:30 · 577 阅读 · 0 评论 -
空类和空结构体的大小
空类和空结构体在学习C语言和C++的过程中,我们可能都有一个问题,一个空类/空结构体的大小是多少呢?首先我们写代码来测试一下:#include<iostream>#include<stdio.h>struct test1 //空结构体{};class test2 //空类{}; ...原创 2019-04-18 12:26:34 · 905 阅读 · 0 评论