C语言的某些基本概念

一.main函数

  • 每个C语言程序不管有多少行代码,都是从 main 函数开始执行的,main 函数是程序的入口,main 函数也被叫做:主函数。main 前面的 int 表示 main 函数执行结束的时候返回一个整型类型的值。所以在 main 函数的最后写 return 0;正好前呼后应。

  • 使用 int 作为 main 函数返回类型是最标准和推荐的方式。 int 作为返回类型意味着 main 函数要返回一个整数值。一般来说,返回 0 表示程序正常结束,返回非零值表示程序执行过程中出现了某种错误。

  •  使用 void 作为 main 函数返回类型(不推荐但部分编译器支持) 有些编译器允许 main 函数返回类型为 void ,即 void main() 。当使用 void 作为返回类型时, main 函数不需要返回任何值。但这种写法不符合C语言标准(C89、C99等标准都规定 main 函数应该返回 int ),在不同编译器之间的兼容性可能存在问题,并且无法通过返回值向操作系统传达程序的执行状态。

  • main函数有且只有一个即使一个项目中有多个.c 文件,也只能有一个 main 函数(程序的入口只能有一个)。

二.C语言的关键字

  • 关键字都有特殊的意义,是保留给C语言使用的。

  • 程序员自己在创建标识符的时候是不能和关键字重复的

  • 关键字是不能自己创建的。

  • C语言的常见32个关键字

1.数据类型关键字(12个)

  • 基本数据类型:

字符型:char

整型:int   short   long

实型(浮点型):float   double

  • 类型修饰关键字:

有符号类型:signed

无符号类型:unsigned

常量修饰:const

易失性修饰:volatile

  • 复杂数据类型:

枚举类型:enum

联合类型:union

2.存储类型关键字(5个)

  • 自动变量auto

  • 静态变量:static

  • 寄存器变量:register

  • 外部变量声明:extern

  • 类型定义:typedef

3.流程控制关键字(12个)

  • 条件判断:

单分支:if

双分支:else

多分支:switch   case   default

  • 循环控制:

for 循环:for

while循环:while

do-while循环:do

跳出循环:break

结束本次循环,进入下一次:continue

  • 无条件跳转

跳转到指定标签处:goto

从函数返回:return

4.特殊关键字(3个)

  • 空类型:void

  • 求字节数:sizeof

  • 结构体类型:struct


三.字符和ASCII编码

  • C语言中的字符是用单引号括起来的,如:‘a’,‘b’,‘@’。

  • 计算机所有的数据都是以二进制的形式存储的,字符在内存中以ASCII的方式来存储。

 
 

 

  • 字符 A-Z 的 ASCII 码值是 65-90
  • 字符 a-z 的 ASCII 码值是 97-122
  • 对应的大小写字符(a和A)的ASCII码值的差值是 32
  • 数字字符 0-9 的 ASCII 码值是从 48-57
  • \n 的 ASCII 码值是 10
  • 这些字符中 ASCII 码值 0-31 这 32 个字符是不可打印字符,无法打印在屏幕上观察

四.字符串和\0

  • C语言中使用双引号括起来的一串字符就被称作字符串,如:“abcdef”,就是一个字符串。

  • C语言字符串中一个特殊的知识,就是在字符串的末尾隐藏放着一个 \0 字符,这个 \0 字符是字符串的结束标志。

  •  strlen  函数计算字符串长度时,只会统计到 \0 之前的字符个数,不包含 \0 本身。
    例如字符串  "abc"  实际存储为  'a','b','c','\0' , strlen  返回  3 。

  • 如果字符串中主动包含 \0 (例如通过代码手动写入),那么 strlen 会遇到第一个 \0 就停止计数,后面的字符会被忽略。 
    举例: 
    char str[] = "hello\0world"; // 实际存储:'h','e','l','l','o','\0','w','o','r','l','d','\0'
    int len = strlen(str);    // len 的值是 5(只统计到第一个`\0`前的字符)
    原因:
     strlen 是根据 \0 判断字符串结束位置的,不会关心 \0 是字符串本身的内容还是结尾标记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值