Hello, World!

#include <stdio.h>

int main()
{
    printf("hello, world\n");
}


编译:gcc hello.c –o hello
执行:./hello

第二个C语言程序

#include 
int main() 
{
 int i = 1;
 int j = 2;
 int sum = i + j;
 printf("sum is %d\n", sum);
}

内存图

Alt text

取地址与解地址

#include 
int main()
{
    int i = 1;
    int j = 2;
    int sum = i + j;
 printf("sum is %d\n", sum);
    printf("i address is %p\n", &(*(&i)));
    printf("j address is %p\n", &j);
    printf("sum address is %p\n", &sum);
    printf("i is %d\n",  *(&i) );
    printf("j is %d\n",  *(&j) );
    printf("sum is %d\n", *(&sum) );
}

五则运算

#include 
int main()
{
    int i = 20;
    int j = 3;
    printf("%d\n", i + j);
    printf("%d\n", i - j);
    printf("%d\n", i * j);
    printf("%d\n", i / j);//整除
    printf("%d\n", i % j);//取模
}

注释

注释是程序中的说明语句,用于解释某些语句的作用,其目的是为了方便阅读程序。注释不参与C语言的编译,任何注释都会在编译过程中都会被忽略。

注释形式

单行注释: //注释内容
多行注释: /注释内容/

注释规范

  1. 每个C文件开头都一段注释,标明文件的名称,作者,编写日期,文件描述与版本修改,下面是一个可以参考的例子:
/*=====================================================
*   Copyright (C) 2014 All rights reserved.
*   
*   Filename:calculate.c
*   Author:luqiang
*   Date:2015/01/12
*   Description:this is the description.
*
======================================================*/
  1. 每个函数的定义处都需要写注释,表示该函数的名称,作者,作用,以及该函数的输入输出值。
  2. 程序的关键代码需要用注释说明
  3. 注意注释不要过多,很多时候,可以通过合理的命名让程序具有*自解释性*。

关键字

关健字又称保留字,是预留给C语言本身使用的名词,在C语言中不可以用作其他用途,比如,不可以用关键字给变量命名,C89规定的关键字共有32个。根据关键字的作用分为四类:

  1. 数据类型关键字(12个)
  2. int, char, short, long, float, double, signed, struct, unsigned, union, enum,void
  3. 控制语句关键字(12个)
  4. break, case, continue, default, do, else, for, goto, if, return, switch, while
  5. 存储类型关键字(4个)
  6. auto, extern, register, static
  7. 其他关键字(4个)
  8. const, sizeof, typedef, volatile

数据类型

基本数据类型:int char float double
结合数据类型:数组[],指针*
构造数据类型:结构体,联合体,枚举类型
空类型:void

变量

变量代表一段有名字的内存空间,定义变量的方式是 数据类型 + 名称,比如int i 定义了一个整型变量。

标识符

用来表示程序中使用的变量名、数组名、函数名和其它由用户自定义的数据类型的名称。定义标识符的时候要注意以下几点:

  1. 只能由英文字母、数字和下划线构成,长度为1~32;
  2. 必须以字母或下划线“_”开头;
  3. 标识符严格区分大小写字母;
  4. 不能以C语言的关键字作为标识符;
  5. 标识符选用应尽量做到“见名知意”,即选用有含义的英文单词或缩写,如sum, name, max等。

运算符、操作数、表达式

运算符是可以对数据进行运算的符号,比如sizeof以及+ - * / %等符号。
运算符操作的对象称为操作数,运算符与操作数组合成表达式。表达式结尾没有分号,如果在表达式两边加上一个括号,那么表达式最终可以得到一个值,这是表达式与语句的区别。

程序错误分类

编译时错误

Error

程序中有语法错误,编译不通过,不能生成可执行文件。

Warning

程序中存在潜在的错误(比如printf未提供与占位符个数相等的参数),编译可以通过,可以生成执行文件。有些警告需要加-Wall选项才会提示Warning。

运行时错误

符合C语言语法规则,但是程序的逻辑设计与目的不符,比如程序要完成求乘法功能,写程序的时候写成了求加法。

  • 无标签