目录
前言
一:const修饰指针
1.const修饰变量
2.const 修饰指针
1.const int*p=&m;
2. int* const p=&m;
3. int const *p=&m;
4. int const *const p=&m;
5.总结
总之一句话为:左定值有定向
二:关于计算中char类型数据的特殊转换
1.关于char类型数据的整型提升
2.关于signed char和unsigned char的数据取值范围和循环
1.signed char和char数据的取值范围及循环
2.unsigned char类型数据的取值范围和循环
3.关于char类型数据计算中的经典易错例题
1.例题一编辑
2.例题二
3.例题三
4.例题四
5.例题五
6.例题六
三:结构体实现位段
1.位段的介绍
2.位段的内存分配
3.位段使用的注意事项
4.应用
接下来的日子会顺顺利利,万事胜意,生活明朗-----------林辞忧
前言
在c语言中常常会遇到一些用const修饰的指针或变量,而且const位置不同表示含义不同,容易出现错误,计算char类型数据时常常会忘记char类型的取值范围,循环等导致出错,还有用结构体来实现位段,用来节省空间,接下来将逐一介绍
一:const修饰指针
1.const修饰变量
我们知道一个变量是可以修改的,如果将变量的地址给一个指针变量,可以通过指针改变变量的值。那么如果我们不希望改变变量的值,那么就将要用到const来修饰
#include<stdio.h>
int main()
{const int m=0;//此时m具有了常属性,不能被修改,但本质上那还是变量,为常变量//但在c++中const修饰的变量为常量m=20;//这种写法是错误的int *p=&m;*p=20;//这种是被允许的const修饰变量是不能直接通过修改变量的值,但可以通过间接的方法如通过指针来修改
}
2.const 修饰指针
const修饰指针有四种形式分别为
const int*p=&m;
int* const p=&m;
int const *p=&m;
int const *const p=&m;
我们依次介绍举例说明
1.const int*p=&m;
2. int* const p=&m;
3. int const *p=&m;
4. int const *const p=&m;
5.总结
const修饰指针变量的时候,放在*的右边,限制的指针变量本身,指针变量不能再指向其他变量,但可以通过指针变量来修改指针变量所指向的内容
const修饰指针变量的时候,放在*的左边,限制的是指针所指向的内容,不能通过指针来修改指向的内容,但可以修改指针变量本身,指针变量能指向其他变量
既放左边又放右边时,限制的指针变量本身和指针所指向的内容,指针变量不能再指向其他变量,不能通过指针来修改指向的内容
总之一句话为:左定值有定向
二:关于计算中char类型数据的特殊转换
1.关于char类型数据的整型提升
2.关于signed char和unsigned char的数据取值范围和循环
1.signed char和char数据的取值范围及循环
2.unsigned char类型数据的取值范围和循环
3.关于char类型数据计算中的经典易错例题
1.例题一
2.例题二
3.例题三
4.例题四
5.例题五
6.例题六
三:结构体实现位段
1.位段的介绍
2.位段的内存分配
struct S
{char a:3;char b:4;char c:5;char d:4;
};
struct S s = {0};
s.a = 10;
s.b = 12;
s.c = 3;
s.d = 4;
在开辟空间时
3.位段使用的注意事项
4.应用
在一些网络数据包中被广泛应用