C语言第八课

数组在函数中传递数组: 实际上传递的是指针

结构体:

struct man 声明一个结构体类型
{
int ID; 先定义结构体类型 说明数据组成和大小
char name[10];
char sex[10];
};
struct man cwy 再定义变量

变量的类型 -> 变量的大小 和 存储方式
cwy.ID = 4; 变量赋值
cwy . ID
基本地址 偏移地址
strcpy(cwy.name, ”caoweiyi”);
scanf(“ %s”, cwy.name);
scanf(“ %s”, &cwy.ID);
从最高的开始访问 ID
name
sex
结构体数组
struct man
{

};
struct man tab[10];
int num;
int i ;

scanf(“ %s”,&num);
for( i = 0 ; i < num ; i++)
{
scanf( “ %d”, &tab[i].ID );
scanf( “ %s”, &tab[i].name );
scanf( “ %s”, &tab[i].sex);
}

在子函数中使用,需要将 结构体声明 放外面
tab[i].name 访问用 箭头 或 点
= (*(tab + i) .name )
= (tab + i) -> name

共用体,联合体

union hold
{
int digit;
double bigfl; 定义用最大的类型 进行存储
char letter;
} c ;
若为结构体,大小为13
若为共用体,大小为 8
该联合变量可被赋予任一成员值,但每次只能赋一种值,赋入新值则冲击旧值。

这里写图片描述
枚举 整型常量

enum color
{
red ,
green ,
blue ,
} c ;
若无初始化,则默认从 0 开始 ,每次 + 1

枚举提高了代码的可读性
结构体提高了代码的结构性

位运算
1、按位取反 ~
将 1 -> 0 ; o -> 1
2、按位与 &
有 0 为 0
aa = aa & 0xf7 第3位 ,清零
最高位为15,置0,就减去相应位的值。
3、按位或 |
有1为1
aa = aa | 0x08 第3位 , 置1

4、 移位
左移 << = *2
右移 >> = /2 需考虑溢出
无符号: 用0 填左端空出位
有符号: 看机器(0 或 符号位 1)

aa |= 1 << 3; 第3位 , 置 1
aa &= ~ (1 << 3); 第3位 , 清零
需 先清零, 再置1

A &= ~A 将A清零
掩码 位 与 运算符 组合 大多的数为 0
MASK = 2; 即 0000 0010, 第2位为1
flags &= ~MASK; 第2位 , 清零
flags |= MASK; 第2位 , 置1

转置位
^ 按位异或
P ^= 0x5 << 0; 5即 0101
跟1 ^ 取反
跟 0 ^ 不变

查看一位的值
if ( (flag & MASK) == MASK )
printf(“Yes \n”);
else
printf(“NO\n”);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值