-
~ 按位取反 位运算中唯一的单目运算符查看全部
-
按位异或作用: 1.定位反转 2.交换数值 a=a^b; b=b^a; a=a^b;查看全部
-
按位或“”应用:设定数据的指定位置查看全部
-
1.按位与,参与运算的数必须为整形或字符型,且以补码形式出现 2.&运算常应用: ·迅速清零 ·保留指定位 ·判断奇偶性 a & 1 = 1;则a为奇数 b & 1 = 0;则a为偶数查看全部
-
动态链表创建函数:<br> 1.需要三个指针:head,p1,p2<br> 2.head为空,p1、p2指向开辟的新的结构体空间 3.最开始将p1赋值给head,之后赋值给p2指向的下一个链表元素 4.给p1指向开辟的新的空间,输入数据 5.然后将p1赋值给p2 6.根据条件,循环结束 7.p2指向的下一指针为空查看全部
-
#include <stdio.h> struct ws //结构体 { int sum; //成员 struct ws *next; //指向下一个结构体 }; int main() { struct ws a,b,c,*head,*p; //定义struct类型的变量、指针 a.sum=1; //赋值 b.sum=2; c.sum=3; head = &a; //头指针 a.next = &b; //指向下一个结构体 b.next = &c; c.next = NULL; //尾指针 p = head; while(p!= NULL) { printf("%d",p->sum); p=p->next; //指向下一个结构体 } return 0; } 执行结果 123查看全部
-
共用体的作用就使不同的类型的变量共享同一个地址,好处是节省开销,缺点是同一时刻仅仅能存储一个成员。 共用体的大小是所有成员中占内存最长的长度,初始化时只能有一个常量。 结构体对象所占的空间大小涉及到一个字节对齐的问题。字节对齐的目的是让计算机快速读写,是一个以空间换取时间的方式。 结构体对象的大小= 最后一个成员的偏移量+最后一个成员变量的大小+填充字节 结构体做字节对齐的时候有这样一个准则:当前成员的偏移量必须是成员变量大小的整数倍,不是的话在后面填充字节。 最后还要判断结构体大小是不是成员中最大的整数倍不是的话还要填充。查看全部
-
结构体指针指向结构体数组的第二个成员查看全部
-
定义: struct weapon *w; w = &weapon1; 数组的名称代表数组首个元素的地址,所以不需要另加取地址符& 访问结构体的成员的三种方法: 1、(*w).name:括号不能省略——因为.的优先级高于*,不加括号表达的是另外一个意思; 2、w->name,“->”是指向运算符; 3、weapon_1.name;查看全部
-
结构体的声明 struct weapon{ char name[20]; int atk; int price; }; 结构体的初始化 struct weapon weapon_1={"weapon_name",100,200}; 结构体的访问 weapon_1.name printf("%s,%d\n",weapon_1.name,weapon_1.price); 结构体数组,数组元素是结构体 struct weapon weapon_2[2]={"weapon_name1",50,100,"weapon_name2",100,200}; 或struct weapon weapon_2[2]={{"weapon_name1",50,100},{"weapon_name2",100,200}}; printf("%s,%d",weapon_2[0].name,weapon_2[1].atk);查看全部
-
struct定义方式:<br> 1. 定义类型 struct xx {};<br> 在函数中声明 struct xx xx1;<br> 2. 定义类型并声明一个全局变量 struct xx {} xx_1;在简单程序中可以这样写,在大程序中会显得结构不够清晰,程序不便于维护<br> 3. 定义一个结构体 struct {} xx_1;<br> 这样定义的结构体,struct就不能再定义其他的结构体变量了查看全部
-
1.typedef——给一个变量类型起别名,是c语句,语句最后要加分号(define没有c语法,最后不用加分号)<br> 实例如图:<br> 解释typedef int *q;<br> 是给int *起了别名q! 2.typedef与define文件区别2:在预处理时,.i文件中typedef定义的类型不会被替换掉; 3.define作用域为在使用了那一行之后的所有程序,而typedef的作用域受位置限制。查看全部
-
预处理阶段:条件编译功能——根据不同的条件编译不同的程序部分产生不同的目标代码文件查看全部
-
预处理阶段,不会进行运算操作,只进行替换;在编译时,才进行运算;<br> 若想得到预想结果,需要加上();<br> 宏函数:<br> 返回值类型 参数列表;<br> #define N(a,b) a+b 引用时X=N(a,b) 不考虑c的语法,不管什么类型,都当做字符串处理;<br> 宏相对于函数的优势:宏对于函数实参的要求比较宽泛。例如:同一个加法宏函数,即可以用于两个整型数据的求和,也可用于两个浮点型数据的求和,而函数要做到这一点的话必须要对函数的形参类型进行改动!查看全部
-
#define 标识符 常量值(没有分号)<br> 宏的本质是在预处理阶段发生的单纯的字符串替换(宏替换);<br> 在预处理阶段,宏不考虑语法;查看全部
举报
0/150
提交
取消