c语言基本语法

c语言基本语法

1. 语句

c语言的代码由一行行语句组成,语句就是程序执行的命令。c语言规定每条语句必须以分号[^;]结尾,除有明确规定可以不写分号。

int x = 1;

上面就是声明了一个变量,这个变量为x,并把它的初始值设为1。

多个语句也可以写在一行。

int x; x = 1;

一条语句也可以分为多行,这时就要依靠分号来判断语句在哪一行结束。

int
x
=
1
;    

但是为了代码的可读性以及整洁性不建议这样写(特殊情况除外)

2. 表达式

c语言的各种计算,主要通过表达式完成,表达式是一个计算式,用来获取值。

1 + 1
   

上面就是一个表达式,用来获取1 + 1的计算结果,表达式也可以加上分号成为一条语句,但是没有什么实际意义。

表达式与语句的主要区别:

  • 语句可以包含表达式,但是表达式本身不构成语句。

  • 表达式都有返回值,语句不一定有。因为语句用来执行某个命令,很多时候不需要返回值,比如变量声明语句(int x = 1)就没有返回值。

3. 语句块

c语言支持多条语句使用一对大括号[^{}],组成一个块,也叫复合语句。

{
    int x;
    x = 1;
}

上面就是一个语句块的示例。

注意语句块大括号的后面不需要加分号。

4. 空格

c语言里的空格主要是帮助编译器区分语法单位,如果语法单位不需要添加空格也能区分,空格就不是必须的,只是为了增加代码的可读性。

int x = 1;
//等同于
int x=1;

示例中赋值符号‘=’前后有没有空格都可以,因为编译器在这里不通过空格也能区分语法单位

语法之间也可以有多个空格

int    x      =        1;

语法之间多个空格等同于一个空格,和单个空格效果一样。

空格还用来表示缩进。多层级的代码有没有缩进,其实对于编译器来说并没有差别,没有缩进的代码也是完全可以运行的。强调代码缩进,只是为了增强代码可读性,便于区分代码块

int main(void){
    printf("hello word");
}

5.注释

注释是对代码的说明解释,编译器会完全忽略,也就是说注释对代码没有任何影响。

c语言里面有两种不同的注释方法

第一种是把注释放在[^//]之间,内部可以分行

/*这是注释*/

/*
这是一行注释
*/

第二种是在[^//]后面写上注释的内容

//这是一行注释
int x;//这也是注释

不管是哪一种注释都不能放在双引号里面,否则编译器会视为这是字符串的一部分

printf("hello/*word*/");

上面示例中,双引号里面的注释符号,都会被视为普通字符,没有注释作用。

6. printf()

6.1基本用法

printf()函数的作用是将文本输到屏幕,它名字里面的f代表format(格式化),表示可以定制输出文本的格式。

printf("hello word")

示例中将在屏幕上输出”hello word“。

printf()不会在行尾自动添加换行符,程序运行结束后光标会停留在输出结束的地方,不会自动换行,如果需要换行需要添加一个换行符[^\n]

printf("hello word\n");

printf()是在标准库的头文件[stdio.h]定义的,使用该函数之前需包含头文件[#include <stdio.h>]。

6.2 占位符

printf()参数与占位符是一一对应关系,如果有n个占位符,printf()的参数就应该有n + 1个。如果参数个数少于对应的占位符,printf()可能会输出内存中的任意值。

printf()函数的占位符有许多种类,与c语言的数据类型相对应。下面按照字母排序,列出常见的占位符

  • %a:浮点数。
  • %A:浮点数。
  • %c:字符。
  • %d:十进制整数。
  • %e:使用科学计数法的浮点数,指数部分的e为小写。
  • %E:使用科学计数法的浮点数,指数部分的E为大写。
  • %i:整数,基本等同于%d
  • %f:小数(包含float类型和double类型)。
  • %g:6个有效数字的浮点数。整数部分一旦超过6位,就会自动转为科学计数法,指数部分的e为小写。
  • %G:等同于%g,唯一的区别是指数部分的E为大写。
  • %hd:十进制 short int 类型。
  • %ho:八进制 short int 类型。
  • %hx:十六进制 short int 类型。
  • %hu:unsigned short int 类型。
  • %ld:十进制 long int 类型。
  • %lo:八进制 long int 类型。
  • %lx:十六进制 long int 类型。
  • %lu:unsigned long int 类型。
  • %lld:十进制 long long int 类型。
  • %llo:八进制 long long int 类型。
  • %llx:十六进制 long long int 类型。
  • %llu:unsigned long long int 类型。
  • %Le:科学计数法表示的 long double 类型浮点数。
  • %Lf:long double 类型浮点数。
  • %n:已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量之中。
  • %o:八进制整数。
  • %p:指针。
  • %s:字符串。
  • %u:无符号整数(unsigned int)。
  • %x:十六进制整数。
  • %zdsize_t类型。
  • %%:输出一个百分号。

7. 标准库,头文件

程序需要用到的功能,不一定需要自己编写,C 语言可能已经自带了。程序员只要去调用这些自带的功能,就省得自己编写代码了。举例来说,printf()这个函数就是 C 语言自带的,只要去调用它,就能实现在屏幕上输出内容。

C 语言自带的所有这些功能,统称为“标准库”,因为它们是写入标准的,到底包括哪些功能,应该怎么使用的,都是规定好的,这样才能保证代码的规范和可移植。

不同的功能定义在不同的文件里面,这些文件统称为“头文件”。如果系统自带某一个功能,就一定还会自带描述这个功能的头文件,比如printf()的头文件就是系统自带的stdio.h。头文件的后缀通常是.h

如果要使用某个功能,就必须先加载对应的头文件,加载使用的是#include命令。这就是为什么使用printf()之前,必须先加载stdio.h的原因。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值