C和指针知识点梳理一



1.1简介

1.1.1空白和注释

空行

  1. 将程序的不同部分分割开来。
  2. 制表符(tab)用于缩进语句,更好的显示程序的结构等等。
  3. 遵守一些约定可以使代码更加容易阅读和修改。

注释

  1. 告诉读者程序能做些什么以及怎样做。
  2. 注释以/*开始,以/结束。
  3. 注释不能嵌套。
  4. 从逻辑上删除一段代码,采用注释的方式注释掉一段代码不是一个好主意,最好的办法是使用#if指令。这是一种更加安全的办法,即使这段代码原先存在注释也无妨。例如:
#if 0
	statements
#endif

1.1.2预处理指令

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX_COLS	20	/*能够处理的最大列号*/
#define MAX_INPUT	1000	/*每个输入行的最大长度*/
  • 以上五行称为预处理指令
  • 预处理指令由预处理器解释
  • 预处理器读入源代码,根据预处理指令对其修改,然后把修改过的源代码递交给编译器。
  • 在上述例子中,预处理器用名叫stdio.h的库函数头文件的内容替换第一条#include指令语句,其结果就仿佛是stdio.h中的中的内容被逐字写到源文件的那个位置。
  • #define 后面的名字出现在源文件的任何位置时,它会被替换为定义的值。

1.1.3main函数

  • C语言中处理字符串是常见任务之一,但它不存在string 数据类型,但在整个语言中存在一个约定,字符串就是一串以NULL字节结尾的字符,NULL是字符串终止符,它本身不被看做字符串的一部分。
  • 字符串常量 就是被双引号括起来的一串字符,例如“Hello”在内存中占据6个字节的空间,分别是H.e.l.l.o.NULL

1.1.4 read_column_numbers()函数

/*
**读取列标号,如果超出规定范围则不理会
*/
int 
read_column_numbers( int columns[], int max )
{
}
  • 这个函数的数组参数中,并未指定数组长度,这个格式是正确的。因为不论调用函数的程序传递给它的数组参数长度是多少,这个函数都将招收不误,这是一个伟大的特性,它允许单个函数操作任意长度的一维数组。这个特性不利的一面是函数没法知道该数组的长度,如果确实需要知道数组的长度,它的值必须单独作为一个参数传递给函数。
int	n_columns 	/*进行处理的列标号*/
int columns[MAX_CLS];	/*需要处理的列数*/
/*
*读取该串列标号
*/
n_columns = read_column_numbers( columns, MAX_CLS );
  • C语言中,实际参数的名字和形式参数的名字并没有什么关系,两者可以相同,也可以不同。
int num = 0;
int ch;
  • 他们是函数的局部变量,第一个变量在声明时被初始化为0,但第二个变量并没有被初始化,它的初始值将是一个不可预料的值,也就是垃圾,在这个函数里面并没事,因为函数对它执行的第一个操作就是赋值。

1.1.5 rearrange()函数

1.2补充说明

1.3编译

1.4总结

1.5警告的总结

1.6编程提示的总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值