喜迎
春节

一些细节


0.00

about

位运算,数据类型的大小,一些定义时的合法规范,使用时的坑点。

0.关于字节,位的大小,还有数据类型的大小

字 word
字节 byte
位 bit

1字=2字节(1 word = 2 byte)
1字节=8位(1 byte = 8bit)

一个字的字长为16
一个字节的字长是8

1 Byte = 8 Bits

1 KB = 1024 Bytes

1 MB = 1024 KB

1 GB = 1024 MB

1.数据类型

image-20230322211638523

c99中额外补充的数据类型

我们可以简单的使用 _Bool 来定义布尔型变量。_Bool类型长度为1,只能取值范围为0或1。将任意非零值赋值给_Bool类型,都会先转换为1,表示。将零值赋值给_Bool类型,结果为0,表示

_Bool flag = 1 ;// 这代表的是true 真

加入头文件 #include,即可直接使用bool类型的定义函数或者变量了

image-20230322211708775image-20230323095448982

unsigned char height;  // 如果没有unsigned,结果就会为负数
   height = 170;
   printf("%d", height); 

2.定义符号常量(宏定义)

image-20230322212233175

3.数据基本类型

image-20230322212536139

image-20230322213401076

4.获取数据类型或表达式的长度

image-20230322213516569

5.signed 和 unsigned

signed 是带符号位的,可以是负数

unsigned 是不带符号位的,只能是正数和0

image-20230322214145971

6.输入和输出

image-20230322214610689

  • printf(“%d”) d是可以打印带符号的 (signed)
  • printf(“%u”) u 是打印无符号的( unsigned)

7.取值范围

image-20230322215229499image-20230322215242630image-20230322215304754image-20230322215527392

8.关于true和false

c语言中使用1 和 0 来表示 true 和false 的,

1. 补充.实数型数据的存在形式和合法规则(浮点数)

C语言中,实数只采用十进制 , 它有两种形式 : 十进制小数形式和指数形式

  1. 十进制数形式
    由数码0~ 9和小数点组成。 例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230 等均为合法的实数。

注意,必须有小数点。

2.指数形式
由十进制数,加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为:
a E n(a为十进制数,n为十进制整数)
其值为 a10n。如:
2.1E5 (等于2.1
105)
3.7E-2 (等于3.710-2)
0.5E7 (等于0.5
107)
-2.8E-2 (等于-2.8*10-2)

以下不是合法的实数:
345 (无小数点)
E7 (阶码标志E之前无数字)
-5 (无阶码标志)
53.-E3 (负号位置不对)
2.7E (无阶码)

2. 合法的标识符和关键字

标识符是用户编程时使用的名字,像变量名称、函数名称、数据类型等都属于标识符。C语言标识符是指用来标识某个实体的一个符号,在不同的应用环境下有不同的含义,标识符由字母(A-Z,a-z)、数字(0-9)、下划线“_”组成,并且首字符不能是数字,但可以是字母或者下划线

2.2 C语言中合法的标识符有以下这些:

  • a
  • a1
  • Student_1
  • b123456a12334_

2.3C语言中非法的标识符有以下这些:

1a 不能以数字开头
sum%3 %为非法字符
a 为非法字符
&&b 必须以字母或下划线开头且&为非法字符

2.4标识符使用注意事项:

所定义的标识符不能与关键字相同,也不能和用户自定义的函数或C语言库函数同名,否则会出现错误。例如:if、for、while等但If、For、While都是合法的。
标识符长度由编译系统限制,也被操作系统限制。C89标准长度限制是8字符,C99标准扩充长度,大部分工业标准都更长。
标识符严格区分大小写,一般变量名用小写,符号常量命名用大写
标识符是用于标识某个量的符号,因此,命名应尽量便于阅读和理解,作到“顾名思义”。
如果在某个编译器中规定标识符前128位有效,当两个标识符前128位相同时,则被认为是同一个标识符。

3.关于自定义的函数在主函数的前后的差别

自定义函数在主函数之前,可以正常调用,没有差别影响

自定义函数在主函数后面的话,就需要在main函数的前面声明该函数,不然会报错

所谓函数声明,就是在函数尚在未定义的情况下,事先将该函数的有关信息通知编译系统,相当于告诉编译器,函数在后面定义,以便使编译能正常进行。

int sum(int a,int b) ; 做一个函数声明,并不用实现,告诉

int main()
{
    ...
}

int sum(int a, int b)
{

}

4.位操作

4.1逻辑位运算符

只作用于整形数据的

例如:

demo = ..

demo &= ..

4.2左移位运算符,左移是乘2

4.3右移位运算符,右移是除2

4.4和赋值号结合

value <<= 1;
value == value << 1 ;

5.掩码


文章作者: ljhaa
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ljhaa !
评 论
 上一篇
函数
函数
1.函数1.函数的定义函数名是该函数的地址,所以在取址时可以不写&,直接写函数名,但是为了区分,最后写上 void print_c() ; // 声明函数 int main() { print_c() ;
2023-05-02
下一篇 
指针
指针
0.0补充关于指针==指针P+1 = 指针P + sizeof(指针的类型) * 1== 加1,是在指针占用的内存空间里加1的。 (P+1)和 P+1的不同之处: *(p+1) 将指针变为了p+1,再取p+1的指针的值。 *p +
2023-04-20
  目录