C语言之关键字结构体共用体位运算

本文详细介绍了C语言中的const、static、volatile、register和extern这五个关键字的用途和特性。const用于创建常量,static用于延长局部变量的生命周期或隐藏全局变量和函数,volatile提示编译器不要优化特定变量,register请求将变量存储在寄存器中以提高效率,extern用于外部声明函数和变量。文章还涵盖了结构体、共用体、位运算和枚举等内容。
摘要由CSDN通过智能技术生成


一、关键字:
①const:修饰变量,希望将这个变量变成“常量”!
用法:
记住一句话:
如果想知道const是修饰谁的,从const开始往右看!看你是先遇到谁,如果先遇到*p,那就是*p,那就是*p
不能够被改变!如果是先遇到p,那么p就不能够被改变!【近水楼台先得月】
1、修饰普通变量;
const无论是放在数据类型的前面或者是后面,都是将变量修饰为常量,不能够改变变量的值!
int const num  = 10;
const int num = 10;
上面这两个是等价的!

2、和指针变量结合起来使用:
I、p;
II、*p;

注意的一点:
int a = 10;
int const *p = &a; //*p不能够被改变!通过指针变量不能间接改变a的值!但是可以通过
//变量本身来改变(a);

a = 12; //这行是不会错的!
*p = 11; //报错!

掌握的是:
1、给你一个表达式,能够看懂修饰什么不变!
2、根据自己的意愿来用const定义相应的变量不变!

int const  a = 12; //修饰a不能够改变!
int *p = (int *)&a;


// a = 18;
*p = 18;

printf("a = %d\n",a);


②static:静态变量!
作用:
1、修饰局部变量:延长局部变量的生命周期;

2、如果修饰全局变量、函数;具有“隐藏”的功能,保证函数和全局变量只能够在本文件中使用(.c),
  不能够在其他的文件中使用,也就是不能够在其他的.c文件中使用!

小结:
Static可以用来修饰局部变量、全局变量和函数;
修饰局部变量的时候,。。。。
<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
结构体共用体位运算C语言中的重要概念。下面是对这些概念的介绍和演示: 1. 结构体(Structures): 结构体是一种用户自定义的数据类型,它可以包含多个不同类型的成员量。结构体的定义使用关键字`struct`,并且可以在其中定义多个员变量。结构体的成员变量可以是基本数据类型、数组、指针等。结构体的成员变量可以通过`.`运算符来访问。 ```c #include <stdio.h> // 定义一个结构体 struct Person { char name[20]; int age; }; int main() { // 创建一个结构体变量 struct Person person1; // 访问结构体的成员变量并赋值 strcpy(person1.name, "John"); person1.age = 25; // 输出结构体的成员变量 printf("Name: %s\n", person1.name); printf("Age: %d\n", person1.age); return 0; } ``` 2. 共用体(Unions): 共用体是一种特殊的数据类型,它允许在同一内存位置存储不同的数据类型。共用体的定义使用关键字`union`,并且可以在其中定义多个成员变量。共用体的成员变量共享同一块内存空间,因此修改其中一个成员变量会影响其他成员变量的值。共用体的成员变量可以通过`.`运算符来访问。 ```c #include <stdio.h> // 定义一个共用体 union Data { int i; float f; char str[20]; }; int main() { // 创建一个共用体变量 union Data data; // 赋值给共用体的不同成员变量 data.i = 10; printf("data.i: %d\n", data.i); data.f = 3.14; printf("data.f: %f\n", data.f); strcpy(data.str, "Hello"); printf("data.str: %s\n", data.str); // 输出共用体的不同成员变量 printf("data.i: %d\n", data.i); printf("data.f: %f\n", data.f); printf("data.str: %s\n", data.str); return 0; } ``` 3. 位运算(Bitwise Operations): 位运算是对二进制数进行操作的运算。常见的位运算操作符有与(`&`)、或(`|`)、异或(`^`)、取反(`~`)、左移(`<<`)和右移(`>>`)。位运算常用于对二进制数据的位进行操作,例如设置某一位的值、获取某一位的值等。 ```c #include <stdio.h> int main() { unsigned int a = 60; // 二进制表示为 0011 1100 unsigned int b = 13; // 二进制表示为 0000 1101 int result = 0; // 位与运算 result = a & b; // 二进制表示为 0000 1100 printf("a & b = %d\n", result); // 位或运算 result = a | b; // 二进制表示为 0011 1101 printf("a | b = %d\n", result); // 位异或运算 result = a ^ b; // 二进制表示为 0011 0001 printf("a ^ b = %d\n", result); // 位取反运算 result = ~a; // 二进制表示为 1100 0011 printf("~a = %d\n", result); // 左移运算 result = a << 2; // 二进制表示为 1111 0000 printf("a << 2 = %d\n", result); // 右移运算 result = a >> 2; // 二进制表示为 0000 1111 printf("a >> 2 = %d\n", result); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值