C语言
AnJunDeng
兴趣
展开
-
两个数交换
/相当于a=a^a^b;//相当于b=a^b^b;2.任何一个数和0异或都是它本身。1.两个相同的数异或结果为0。3.异或满足交换律和结合律。原创 2023-05-13 21:37:16 · 108 阅读 · 1 评论 -
cc++中单冒号(:)和双冒号(::)的用法
一.单冒号(:) 有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。这样就可以把几个不同的对象用一个字节的二进制位域来表示。一、位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为: s...原创 2022-01-06 14:23:14 · 2702 阅读 · 0 评论 -
C语言进阶(一):宏函数内定义结构体
示例一:#define SPD_LIST_HEAD_NOLOCK(name, type) \ struct name { \ struct type *first; \ struct type *last; \ }SPD_LIST_HEAD_NOLOCK(, schedule原创 2022-01-05 11:50:08 · 1831 阅读 · 0 评论 -
C语言基础(三):函数名、函数指针、指针函数的理解
函数的理解函数名的理解--函数指针函数名也称为函数的指针,所以c语言中函数名就是一个指针。函数指针 两种表示:int func(char,double); // 这是一个普通函数int (*p)(char,double); //指向一个以上函数的指针函数指针:指针,指向的类型是一个函数int add(int a,int b){ return a + b;}//指针变量,指向add函数//int (int a,int )(*p);int (*p)(int a...原创 2022-01-04 15:09:54 · 4435 阅读 · 4 评论 -
C语言基础(二):%d %ld %u %o的意思
%d 十进制有符号整数。 %u 十进制无符号整数。 %ld 输出l长整数 。 %s 字符串。 %c 单个字符。 %p 指针的值。 %e 指数形式的浮点数。 %x 小写字符十六进制表示整数的无符号。 %X 大写字符十六进制表示整数的无符号。 %o 无符号以八进制表示的整数。 %g 自动选择合适的表示法。 ...原创 2022-01-04 14:13:29 · 8097 阅读 · 0 评论 -
结构体和联合体的区别
结构体变量空间分配 分配的空间 按照成员变量的顺序进行空间分配 空间分配的总和是所有成员变量的和 为了更方便取数据,会在成员变量的空间进行一些填充,表示实际上分配的字节数 >= 所有成员变量分配的空间。 struct Worker{ char name[20]; //20,但是考虑最大类型double字节对齐 8,下一个的类型是 //double类型,所以是 24 double salary; //8 int age; //4原创 2021-12-31 14:57:02 · 340 阅读 · 0 评论 -
C语言基础(一):打印实现菱形
需要的头文件#include <stdio.h>一、实现简单打印 char a='*';//定义了一个变量a,存了一个"*" printf("%3c\n",a); return 0;注意的是,我们要打印的是*,是一个字符,所以类型是charprintf("%3c\n",a);这句话中%c是输出字符的意思,%3c就是隔三个空格输出字符,\n是换行符实现的效果如下图所示以上就是最基础的打印了。有不懂的下面留言,看到会回复哦(*^_^*)。二、实...原创 2021-12-30 13:17:06 · 2264 阅读 · 2 评论 -
【动态效果】C语言实现圣诞树,送给朋友
#include <stdio.h>#define A 60//树顶,以树顶为标杆#define B 4//等差数列void tree(int layer,int line){ char a = ' ',c = '*'; int x,y,z,l,d; d=B;//等差 l=0;//用来确定打印范围 //1.画树身 for(x=0;x<layer;x++)//确定有几层 { for(y=0;y<line;y++)//确定每层有几行 { for(z=.原创 2021-12-22 11:47:45 · 3983 阅读 · 5 评论