**
初识C
总结一下在学C时的薄弱知识点
数据类型
char 1字节
short 2字节
int 4字节
long 4/8字节
long long 8字节
float 4字节
double 8字节
关联知识点:每种数据类型对应的指针进行解引用时,使用的空间对应原类型的字节大小。
常量
常量可分为以下几种
- 字面常量
- const修饰的常变量
- #define定义的标识符常量
- 枚举常量
#include <stdio.h>
//举例
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
//字面常量演示
3.14;//字面常量
1000;//字面常量
//const 修饰的常变量
const float pai = 3.14f; //这里的pai是const修饰的常变量
pai = 5.14;//是不能直接修改的!
//#define的标识符常量 演示
#define MAX 100
printf("max = %d\n", MAX);
//枚举常量演示
printf("%d\n", MALE);
return 0;
}
与const关联知识点:
- const修饰指针有两种形式:
const * p
* const p
前者表示*p整体不可被修改,即p指针指向内容不可被修改,但可以更换指向的对象。后者则相反。
- const修饰的变量即常变量。
它只是被语法层面被限制了不能被修改值,但他的本质还是变量,因此不能在初始化数组使用常变量来规定数组的长度。
转义字符
- \? 在连续书写多个问号时使用,防止被解析成三字母词
关于三字母词可以看看这位大哥写的博客。
三字母词 - \’ , \" , \\ 都是转义\后面的内容
- \ddd \xdd 前者1~3个八进制数,后者2个十六进制数
操作符
- 移位操作符
左移操作符>> :对应二进制补码直接左移,缺位直接补0
右移操作符<<:对应二进制补码右移,缺位补对应的符号位
- sizeof()
单目操作符sizeof(),括号的中任何运算没有意义,如:
int i=8;
sizeof(i++);
printf(“%d”,i);
此时打印的i值仍然是8.
sizeof在编译期间就会被翻译成i++的数据类型的字节大小,即4;
并不会进行其中的运算,这并不是一个函数。
- 逗号表达式
表达式1,表达式2,表达式3,表达式4
整个逗号表达式的值是最后一个表达式的值,即表达式4的值
常用关键字
- typedef(类型重命名)
在数据结构中,常用在重命名结构体类型
或常用类型如typedef unsigned int
- static(修饰变量和函数)
1.修饰局部变量时,使局部变量即使出了作用域,依然存在。影响生命周期
2.修饰全局变量,使全局变量只能在本源文件中使用,不能被其他源文件引用
3.修饰函数时也是同理。
#define定义常量和宏
在使用define定义的常量和宏,他的规则是直接把对应内容替换掉,因此需要注意括号的使用,以防出现歧义;
以上是我在初识C时的不太容易记的地方,欢迎各位大牛评论。