C语言关键字的秘密

重点说明:

1、if(略)

2、void

①C语言规定只有相同类型的指针才可以相互赋值

②void*指针作为左值用于“接收”任意类型的指针

③void*指针作为右值赋值给其它指针时需要强制类型转换

④void*指针的使用(比如:memset函数的实现)

3、extern

 extern "C"
{
int add(int a, int b)
{
return a + b;
}
}
//告诉编译器用C方式编译这个函数

 4、const

①const修饰指针

const int* p; //p可变,p指向的内容不可变

int const* p; //p可变,p指向的内容不可变

int* const p; //p不可变,p指向的内容可变

const int* const p; //p和p指向的内容都不可变

口诀:左数右指

当const出现在*号左边时指针指向的数据为常量

当const出现在*后右边时指针本身为常量

②const修饰函数参数和返回值

const修饰函数参数表示在函数体内不希望改变参数的值

const修饰函数返回值表示返回值不可改变,多用于返回指针的情形

深入了解const的链接:https://blog.csdn.net/hjssss/article/details/86651393

5、struct与union

6、enum枚举类型与#define宏的区别

#define宏常量只是简单的进行值替换,枚举常量是真正意义上的常量

#define宏常量无法被调试,枚举常量可以

#define宏常量无类型信息,枚举常量是一种特定类型的常量

最新文章

  1. PHP 正则表达式匹配中文字符
  2. 那一夜,我们..奋笔疾书敲出的--->>库存管理系统
  3. css3属性 transition transform
  4. POJ 1488
  5. 一个日期Js文件。 2013年10月12日 星期六 癸巳年九月初八
  6. ASP.NET MVC3 实例(六) 增加、修改和删除操作(二)
  7. hdu 4911 Inversion (分治 归并排序 求逆序数)
  8. 【Android - 框架】之Retrofit的使用
  9. 转:.NET 环境中使用RabbitMQ
  10. COCO-Android开发框架公布
  11. Maven 复制jar到指定目录
  12. websevice(Web服务)基础
  13. 常见的cmd命令
  14. Tampermonkey脚本属性
  15. 关于CPU CACHE工作机制的学习
  16. range— 建立一个包含指定范围单元的数组 (數字、字母)
  17. AHB-Lite简介
  18. Excel 2003-单元格输入中带记忆功能
  19. Python之subprocess模块、sys模块
  20. OC基础之访问修饰符

热门文章

  1. LOJ P10130 点的距离 题解
  2. Oracle 分区默认segment大小变化(64k—>8M)
  3. (尚019)Vue基于脚手架编写项目
  4. BZOJ 3553: [Shoi2014]三叉神经树 LCT
  5. java 数组逆序输出(方法内部的代码)
  6. WinDbg常用命令系列---!envvar
  7. puppeteer 试用
  8. [RN] React Native 使用 React-native-scrollable-tab-view 实现 类头条 新闻页头部 效果
  9. CFD-Post批量添加截面
  10. (五)Cisco dhcp snooping实例3-多交换机环境(DHCP服务器和DHCP客户端位于同VLAN)