C语言入门知识详细说明

我所采用的编译环境为VS2012。

1.简单的C语言示例

首先看一个简单的C语言程序,其中#include "stdafx.h"头文件为编译器自动生成:

#include "stdafx.h"
#include <stdio.h>
int main(void)
{
	int num;
	num=1;
	printf("I am a simple");
	printf("computer.\n");
	printf("My favorite number is %d because it is first.\n",num);
	return 0;
}

2.示例解释

程序细节

1.#include指令和头文件

#include <stdio.h>的作用相当于把stdio.h的文件的所有内容都输入该行所在的位置。

#include这行代码是一条C预处理指令,通常,C编译器在编译前会对源代码做一些准备工作,即预处理。

所有的C编译软件包都提供stdio.h文件,该文件中包含了供编译器使用的输入和输出函数(如printff())信息,该文件名的含义是标准输入/输出头文件

 

2.main()函数

int main(void)

C程序一定是从main()函数开始执行。除了main()函数,可以任意命名其他函数,而且main()函数必须是开始的函数。

int是main()函数的返回类型,表明main()函数返回的值是整数,返回给操作系统。

函数名后面的圆括号中包含一些传入函数的信息,该例中没有传递任何信息,因此,圆括号里是void。

 

3.注释

C语言的注释有两种:一种是 /* */ ,还有一种是 //

例如:

1.    /* 这是一条C语言注释*/

2.     /*这也是一条注释,

           被分成两行。*/

3.     /*

         也可以这样注释

       */

4.     int rigue;  // 这种注释只能写一行

 

4.花括号、函数体和块

{

.......

}

一般而言,所有的C函数都使用花括号标记函数体的开始和结束。

 

5.声明

int num;

这行代码叫声明,声明是C语言最重要的特性之一。该声明完成了两件事:其一,在函数中有一个名为num的变量。其二,int表明num是一个整数。  int是一种数据类型,编译器使用这些信息为num变量在内存中分配储存空间。

int是一个关键字,表示一种基本的C语言数据类型。

示例中的num是一个标识符,也就是一个变量、函数或其他实体的名称。

在C语言中,所有的变量都必须先申明才能使用,这意味着必须列出程序所用到的所有变量名及其类型。为了很好的与旧系统兼容,这里统一把变量声明在块的顶部,其他语句不能再任何申明的前面。示例如下:

int main()
{
	int doors;
	int dogs;
	doors = 5;
	dogs = 3;
}

 

命名规则

可以用小写字母、大写字母、数字和下划线来命名。而且,名称的第一个字符必须是字符或下划线,不能是数字。                                                                  

有效和无效的名称
有效的名称无效的名称
wiggles$Z]**
cat22cat
Hot_TubHot-Tub
taxRatetax rate
_kcabdon't

 

6.赋值

num = 1;

赋值表达式语句语句从右侧把值赋到左侧,这行代码的意思是“把值1赋给变量 num ”。在执行i nt num; 声明时,编译器在计算机内存为变量num预留了空间,然后在执行这行赋值表达式语句时,把值储存在之前预留的位置。

 

7.printf()函数

printf("I am a simple");

printf("computer.\n");

printf("My favorite number is %d because it is first.\n",num);

printf 是一个函数名,圆括号中的内容是从main()函数传递给printf()函数的信息。

第1行printf()演示了在C语言中如何调用函数。只需输入函数名,把所需的参数填入圆括号即可。当程序运行到这一行时,控制权被转给已命名的函数(该例中式printf())。函数执行结束后,控制权被返回至主调函数,该例中是main()。

第2行printf()函数中的\n字符并未输出。\n的意思是换行。换行符是一个转义序列,转义序列用于代表难以表示或无法输入的字符。如\t代表Tab键,\b代表Backspace键,每个转义序列都以反斜杠字符 (\)开始。

第3行中的 % 提醒程序,要在该处打印一个变量,d 表明把变量作为十进制整数打印。printf() 函数名中的 f 提醒用户,这是一种格式化打印函数。printf() 函数由多种打印变量的格式,包括小数和十六进制整数。

 

8. return 语句

return 0;

int main(void)中的 int 表明main()函数应返回一个整数。C标准要求main()这样做,有返回值的C函数要有 return 语句。该语句以 return 关键字开始,后面是待返回的值,并以分号结尾。如果遗漏main()函数中的 return 语句,程序在运行至最外面的花括号时会返回0。

 

提高程序可读性的技巧

  1. 选择有意义的函数名。
  2. 写注释。
  3. 在函数中用空行分隔概念上的多个部分。
  4. 每条语句各占一行。

示例:

int main(void) /* 把2英寻转换成英尺 */
{
    int feet,fathoms;
    
    fathoms = 2;
    feet = 6*fathoms;

    printf("There are %d feet in %d fathoms!\n",feet,fathoms);
    return 0;
}

 

3.多个函数

#include "stdafx.h"
#include <stdio.h>

void butler(void); /* C函数原型 */

int main(void)
{
	printf("I will summon the butler function.\n");
    butler();
    printf("Yes.Bring me some tea and writeable DVDS.\n");

	return 0;
}

void butler(void) /* 函数定义开始 */
{
    printf("You rang,sir?\n");
}

butler() 函数在程序中出现了3次。第一次是函数原型,告知编译器在程序中要使用该函数;第2次以函数调用的形式出现在 main() 中;最后一次出现在函数定义中,函数定义即是函数本身的源代码。

 

易犯错误:n2为n的平方,n3为n的立方。

 

4.关键字和保留标识符

C关键字
autoexternshortwhile
breakfloatsigned_Alignas
caseforsizeof_Alignof
chargotostatic_Atomic
constifstruct_Bool
continueinlineswitch_Complex
defaultinttypedef_Generic
dolongunion_Imaginary
doubleregisterunsigned_Noreturn
elserestrictvoid_Static_assert
enumreturnvolatile_Thread_local

 

最后,来说一下程序的输出在屏幕上一闪而过的问题。某些窗口环境会在单独的窗口运行程序,然后在程序运行结束后自动关闭窗口。一种解决方法是:

在程序的return语句中添加一行代码:getchar();

这行代码会让程序等待击键,窗口会在用户按下一个键后才关闭。

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风自在 流水潺潺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值