C语言基础复习

      终于狠下心来深入学习C语言,之前学了一些皮毛,今天就先复习了一下之前学到的东西,顺便做个总结。

C语言预处理命令:预处理命令并非C语言的一部分,但它可以引导C编译器做一些额外的工作。宏定义在习惯上均以大写表示。

ANSI C的预处理命令有下面这些:

#define  宏定义

例:#define TRUE 1 //使TRUE1具有相同意义。

#define ADD(a,b) a+b //该宏返回两数之和。

#error 使编译器停止编译,在调试时使用

#include  文件包含指令,常见的头文件包含

#if……#elif……#else……#endif 条件判断指令,用法与其他if……else一致。

#ifdef 宏名……#endif  如果定义了指定的宏,则向下执行

#ifndef 宏名……#endif 如果指定的宏未定义,则向下执行

#undef 宏名 取消指定的宏定义

#line 指定当前行号

#pragma 未理解



二维数组:C语言支持多维数组,其中二维数组是多维数组中最简单的一种。

公式:char strs[m][4] = {"a","b","c","d","1","2","3","4",}; 其中,m为行数,4为列数。

为了便于理解,我们可以二维数组像下面这样:

一个mn列的表格:

 

0

1

2

3

0

"a"

"b"

"c"

"d"

1

"1"

"2"

"3"

"4"

……(m

    

像这样的表格,我们可以通过横竖坐标来访为指定的数据。



指针:指针是C的灵魂,个人认为其概念还是比较容易掌握,但在实际编程时,绕来绕去还是稍显迷糊。

        首先,指针是一个变量,它需要占用内存空间,但该变量保存的并非普通的值,而是一个地址。

对于指针的操作,可以操作两方面:直接操作它的值(是一个内存地址);操作其值指向的内存空间的值。这里有点绕,但请不要晕,我们来看看解释:

int a=0;

int b=1;

int *pa = &a;

int *pb = &b;

可以看到,我们定义了四个变量,分别是整型的ab,以及指向整型变量的指针papb

变量papb中分别保存了一个值,该值为变量ab在内存中的地址(&为取地址运算符)。

假设a的地址为:10000b的地址为10004。我们来分别看一下这四个变量的值:

a=0;

b=1;

pa=10000;

pb=10004;

到这里,大家因该明白指针保存的是一个地址的含义了。再看,

printf("%d",&a); //输出0

printf("%d",pa); //输出0

&apa均表示变量a的地址,因此输出的都是变量a的值。那么,“操作其值指向的内存空间的值”是什么意思呢?

像这样:b=*pa; //b=a;是等价的(我们用"*"运算符,获取指针指向的内存地址的值。

那么:*pa = 10; //a=10是等价的,我们操作的是其值指向的内存的值

再如:pa = 10008; //此时,pa保存的将不再是变量a的地址,我们手动将pa的值改变了,这时,我们操作的是指针本身的值。

        今天复习了这些重要的东西,其他比较浅显的省略了,比较深入的后面再来。

2011/07/24 傍晚 闷热



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值