knowledge_c

knowledge_c

1 十进制、八进制和十六进制的表示

首先,十进制 decimalism [ˈdesɪməlɪzəm];八进制 octonary [ˈɑːktəˌneri];十六进制 hexadecimal[ˌheksəˈdesɪml]

  1. 十进制
  • 表示:没有任何前缀,默认是十进制
  • 显示:使用%d(常用于pringf()函数中)
  • 额外显示前缀:无
  1. 八进制
  • 表示:加上前缀0(数字0)
  • 显示:使用%o(小写字母o)(常用于pringf()函数中)
  • 额外显示前缀:使用%#o(常用于pringf()函数中)
    eg. 010
  1. 十六进制
  • 表示:加上前缀0x或0X(数字0,小写字母x或大写字母X)
  • 显示:使用%x(小写字母x)(常用于pringf()函数中)
  • 额外显示前缀:使用%#x 或 %#X(常用于pringf()函数中)
    eg. 0x10 0X10

2 形参和实参

3 运算符的优先级



4 ctype.h头文件中的字符测试函数

5 else和if配对的规则

6 求值顺序

7 printf()的转换说明

%lf  double
%ld  long int

8 什么是函数原型?

ANSI C标准要求在函数声明时,还要声明变量的类型,即 使用 函数原型(function prototype)来声明函数的返回类型、参数的数量和每个参数的类型。

9 函数的声明和定义

ANSI C标准中的函数声明格式有以下2种:
int imax(int, int);
int imax(int a, int b);
第一种形式使用以逗号分隔的类型列表,第2种形式在类型后面添加了变量名。注意,这里的变量名是假名,不必与函数定义的形式参数名一致。
note:

  1. 如果函数中确实没有参数,应该这么声明: void imax(void); 而不是 void imax();
  2. 如果函数中参数不固定,如printf(),可以这么声明:int printf(const char *, ...);

10 函数签名

函数的返回类型和形参列表构成了函数签名。

11 指针

指针(pointer)是一个值为内存地址的变量(或数据对象)。

  1. &(地址运算符)
    后面跟一个变量名时,给出该变量的地址。
    eg. ptr = &pooh; // 把pooh的地址赋给ptr
    ptr是指针变量, &pooh 是指针常量

  2. * (地址运算符/间接运算符)
    后面跟一个指针名或地址时,给出存储在指针指向地址上的值。
    假设已知 ptr = &bah; 则可以使用以下语句获取存储在bah变量中的值:
    val = *ptr; // 找出ptr指向的值
    ptr = &bah; val = *ptr; 这2条语句可以合并起来,相当于 val = bah;

12 块作用域的变量的存储期

块作用域的变量通常都具有自动存储期。当程序进入定义这些变量的块时,为这些变量分配内存;当退出这个块时,释放刚才为变量分配的内存。即,从块的开始处到块的末尾。
变长数组稍有不同,它们的存储期是从声明开始处到块的末尾,并不是从块的开始处到块的末尾。

13 初始化

普通变量:仅仅声明,不初始化,那么其值不确定,因为是之前分配给该内存的一个值。
static声明的变量(即,静态变量):仅仅声明,不显式初始化,那么其值被自动初始化为0。

14

15

16

17

18

19

20

posted @ 2021-09-08 08:17  mediocrep  阅读(51)  评论(0编辑  收藏  举报
既然选择了远方,便只顾风雨兼程!