倒霉的菜鸟

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1, C语言是一种面向过程的语言

2, 所有C语言程序都需要包含main()函数, 代码从main函数开始执行

3, stdio.h是一个标准输入输出头文件, #include是一个预处理命令, 用来引入头文件。  printf()用于格式化输出, 在头文件stdio.h中有声明, 程序编译时如果找不到这个头文件就会报错。

4, reutrn 0表示退出程序

1 #include <stdio.h>
2 
3 int main() {
4     printf("Hello, World!胡超\n");
5     return 0;
6 }

5, C程序由各种令牌(token)组成, 令牌可以是关键字,标识符, 常量,字符串值,符号

 

6, 字长?

字长是CPU的主要技术指标之一, 指的是CPU一次最大能并行处理的二进制位数。

目前主流的计算机字长是32位和64位

 

7, 原码, 反码 和补码? (指的都是二进制)

正数的原码, 反码,补码相同, 假设字长为8, 则 10的 原码,反码,补码都为 0000 1010

为了表示负数, 我们将最高位表示为符号位 , 则 -10的原码为  1000 1010

符号位不变, 其他按位取反, 则得到反码:                               1111  0101

反码末位加1,得到补码:                                                            1111  0110

 

在计算机中, 数值一律用补码来存储,  这是因为, 使用补码,符号位和其他位统一处理, 减法也可以按照加法来运算。

如: 3 - 10 = -7,   这个计算   我们可以按照 3 + (-10)来处理:

3    的补码  0000 0011

-10的补码   1111  0110

相加得到: 1111  1001

验证下  -7 的原码为  1000 0111   反码为  1111 1000   补码为 1111 1001

 

8, C语言中的关键字

仅列出本人在java中不常用到的或不同的:

auto  声明自动变量 ,  如   auto int i;    等价于  int i;

const 定义常量, 如果一个变量被const修饰, 那么它的值就不能被改变    

extern  声明变量或函数是在其他文件   或在本文件的其他位置定义的 

goto  无条件跳转语句 (不建议频繁使用,因为代码跳来跳去会让结构变得很乱)

register 声明寄存器变量

signed  声明有符号类型变量或函数 

unsigned 声明无符号类型变量或函数 

sizeof  计算数据类型或变量的长度(所占字节数)

  如:  

printf("%llu\n", sizeof (int)); //4
printf("%llu\n", sizeof (char)); //1
printf("%llu\n", sizeof (long)); //4
printf("%llu\n", sizeof (long long)); //8
printf("%llu\n", sizeof (double)); //8
printf("%llu\n", sizeof (float)); //4
printf("%llu\n", sizeof (void)); //1
printf("%llu\n", sizeof (_Bool)); //1

注意: 具体字节数可能根据操作系统位数不同而有所不同 

void   除了声明函数无返回值, 无参数之外, 还可以用来声明无类型指针 

struct 声明结构体类型 

typedef   用来给数据类型起别名, dart中也有这个关键字, 用来定义一个类型 

union  声明共用体类型 

volatile   说明变量在程序执行中,可被隐含地改变    java中也有这个关键字, 用于声明可见性数据 

 

9, C语言的数据类型 

可以分为四种:

1) 基本类型: 算术类型,包括整数类型和浮点类型 

2)枚举类型: 算术类型, 用来定义在程序中只能赋予其一定的离散整数值的变量

3)void类型, 表明没有可用的值

4)派生类型: 包括:指针类型、数组类型、结构类型、共用体类型和函数类型

 

 

 

10, 变量的类型决定了变量存储的 大小和位置, 如:

 

11, 变量的声明和定义:

1 extern int i; // 声明变量名, 并没有建立存储空间, 变量i可以在别的文件中定义
2     int a;//声明并定义变量, 建立存储空间

extern使用示例:

我们在一个源文件中定义方法, 要引用的变量加extern关键字修饰

1 extern int x;
2 extern int y;
3 int testAdd(){
4     return x+y;
5 }

然后在另一个文件中, 提供这两个变量的定义:

1 #include <stdio.h>
2 
3 int x = 31;
4 int y = 58;
5 int testAdd();
6 int main() {
7     printf("%d\n", testAdd());
8     return 0;
9 }

 

12, C中的左值和右值

左值(Lvalues):指向内存位置的表达式被称为左值表达式,左值可以出现在赋值号的左边或右边

右值(Rvalues): 指的是存储在内存空间中的某些地址上的数值,右值表达式不能被赋值, 只能出现在赋值号的右边 

 

如 int a  = 10;  变量是左值, 10 是右值。 我们不能写成 10 = a, 或者 10=20

 

13, C库函数printf()

printf()函数的调用格式为:   printf("<格式化字符串>", <参量表>);

被声明在stdio.h中 

 

常见格式符:

  • %d 十进制有符号整数
  • %u 十进制无符号整数
  • %f 浮点数
  • %s 字符串
  • %c 单个字符
  • %p 指针的值
  • %e 指数形式的浮点数
  • %x, %X 无符号以十六进制表示的整数
  • %o 无符号以八进制表示的整数
  • %g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
  • %p 输出地址符
  • %lu 32位无符号整数
  • %llu 64位无符号整数

 

posted on 2021-11-11 12:39  倒霉的菜鸟  阅读(135)  评论(0)    收藏  举报