C语言入门(简易版)

C语言入门

第一个语言程序

#include <stdio.h>
int main()
{
    printf("hello C\n");
    return 0;
}

main函数

  • 是程序的入口

  • 有且仅有一个

  • 可以放在任意位置

printf函数和库函数

  • 用来打印输出
  • 必须包含头文件 <stdio.h>

一个系列的库函数一般会声明在同一个头文件中,库函数的使用,要包含在对应的头文件中。

库函数参考链接

关键字

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

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

  • 关键字也是不能⾃⼰创建的。

C语言的32个关键字

1 	auto	break	case	char	const	continue	default		do 	double	else	enum
2	ex	float	for   goto   if   long   register   return   short   signed   sizeof
3   struct   switch   typedef   union   unsigned   void   volatile   while 

注:在C99标准中加入了 inlinerestrict_Bool_Comploex_Imaginary 等关键字。

C语⾔关键字的全部介绍

字符和ASCII编码

在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:‘a’,‘b’,‘@’。

ASCII码表

下列码表包含有全部128个ASCII 十进制(Dec)、八进制(Oct)、十六进制(hex)及字符(ch)编码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UTEoXybI-1690260903564)(C:\Users\luo84\AppData\Roaming\Typora\typora-user-images\image-20230722112443963.png)]

完整ASCII码表参考

  • 字符AZ的ASCII码值从6590

  • 字符az的ASCII码值从97122

  • 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32

  • 数字字符09的ASCII码值从4857

  • 换⾏ \n 的ASCII值是:10

  • 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察

单个字符打印可以使用 %c 来指定格式:

#include <stdio.h>

int main()
{
    printf("%c\n",'Q');
    printf("%c\n",81);//这里的81是字符Q的ASCII码值,可以正常打印
    return 0;
}

打印字符展示:

#include <stdio.h>

int main()
{
	int i = 0;
	for (i = 32; i <= 127; i++)
	{
		printf("%c   ", i);
		if (i % 16 == 15)
			printf("\n");
	}
	return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AVngu6UP-1690260903565)(C:\Users\luo84\AppData\Roaming\Typora\typora-user-images\image-20230722122503080.png)]

字符串和\0

字符串

C语言中,使用双引号括起来的一串字符就被成为字符串,如:“abcdef”

字符串打印格式使用 %s 来指定,也可以直接打印:

#include <stdio.h>
int main()
{
    printf("%s\n","hello");
    printf("hello");
    return 0;
}

字符\0

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

C语言也可以把一个字符串放在一个字符数组中:

#include <stdio.h>
int main()
{
	char arr1[] = { 'a','b','c' }; //在arr1中存放三个字符
	char arr2[] = "abc"; //在arr2中存放一个字符串
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	return 0;
}

调试的时候,观察 arr1arr2 的内容:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EgXcuPso-1690260903565)(C:\Users\luo84\AppData\Roaming\Typora\typora-user-images\image-20230725093242596.png)]

在观察运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YLizYEls-1690260903566)(C:\Users\luo84\AppData\Roaming\Typora\typora-user-images\image-20230725093415154.png)]

可以看到,arr1在打印的时候,打印了 我们规定的字符后,还打印了一些随机值。这就是因为在 arr1 末尾的地方没有\0 字符作为结束标志,打印的时候没有停止。

但是 arr2 是完全正常的,因为arr2 数组是使用字符串常量初始化的,数组中有\0 作为结束标志,打印可以正常结束。

如果在数组中单独放一个’\0’呢?

#include <stdio.h>
int main()
{
	char arr1[] = { 'a','b','c','\0'};
	char arr2[] = "abc";
	printf("%s\n", arr1);
	printf("%s\n", arr2);
	printf("%s\n", "abc\0def");
	return 0;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hIz6Lim2-1690260903566)(C:\Users\luo84\AppData\Roaming\Typora\typora-user-images\image-20230725094456487.png)]

三次打印的结果是一样的,都是打印到 \0 就结束了,这样我们可以更直观的看出 \0 的作用和重要性。

转义字符

在字符中有如上解释过的 \n ,\0 ,它们是字符中的一组特殊的字符——转义字符,顾名思义:转变原来的字符的意思。

例:字符 n ,在字符串中打印可以直接打印出来:

#include <stdio.h>

int main()
{
	printf("abcnedf");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值