《C陷阱与缺陷》读书笔记

2017-07-13  本文已影响36人  Nemocdz
多字符记号
单引号与双引号
printf("Hello world\n");
//等价于
char hello[] = { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '\n', 0 };
printf(hello);
声明

变量声明=类型+对该类型求值的表达式

类型的模型=变量声明去除变量名和分号后用括号括起来

float *a();
//a是一个返回float指针的函数,模型为
(float *())

//调用地址0的函数
//调用变量
(*a)();
//a为返回void的函数的指针
void (*b)();
//模型为
(void (*)())
//将0转为此类型
(void(*)())0;
//调用转换后的变量
(*(void(*)())0)();
函数调用

需要参数列表,可无参数

f();//函数调用
f;//函数地址求值,不调用
表达式求值顺序
函数参数转换

规则

  1. 比int短的整型转换为int
  2. 比double短的浮点转换为double
  3. 其余不转换
指针非数组

char指针变量是指向其数组第0个元素的指针

除法
q = a / b;
r = a % b;

保证

不一定保证

上一篇下一篇

猜你喜欢

热点阅读