main函数
-
main函数顾名思义主函数的意思,是程序执行的入口。
-
main函数只能有一个,因为程序的入口只能有一个。
printf函数和库函数
printf就是一个库函数,功能:在屏幕上打印信息。
在使用printf函数时许哟啊包含 头文件 。具体操作如下:
#include <stdio.h>
实操
#include <stdio.h>
int main()
{
int n = 1;
printf("%d\n",n);//1
printf("Hello World!\n")//Hello World!
printf("%c\n",'a');//a
return 0;
}
其中的%d、%c为占位符。
\n为换行符。
那问题来了,库函数又是什么东西?听不懂啊!!!!
别急,这就为大家解答一下。
为了程序员不重复使用一些常见的代码,例如打印、录入数字等(每个程序员都写一遍那还了得!那得多少行代码)C语言规定了一组函数,这些函数再由不同的的编译器厂商根据标准进行实现(不同编译器厂商不大一样,例如在C语言中规定录入用scanf函数,而在VS2022中我们需要使用scanf_s,不然会报错,这个也可以设置,等讲到再说,我没忘!真的!嗯。),并提供给程序员使用,这些函数组成了一个函数库,被称为标准库,又叫库函数。
一个系列的库函数一般会声明在同一个头文件中,所以库函数的使用需要包含对应的头文件,例如上面的#include <stdio.h>
库函数不止printf、scanf等,还有超~级多(自己浏览器搜一下cpp,cplusplus也行)。
看一眼
这么多!!!你疯了!你认真的?
不用背嗷,不用背,要用的时候看一下就行了,嘿嘿
关键字
C语言中有一批保留的名字的符号,它们有特殊的意义,例如:int、while、for、if、return等,这些符号被称为关键字。
注意:
- 我们在创建标识符的时候不能用关键字。
- 自己并不能创建关键字(你没那么伟大,连关键字都给创建了,你咋这么牛)
C语言常见关键字如下:
short int float double long char do
return if else while for continue break
default switch case void signed unsigned typedef sizeof struct
常见的这些,不用背!千万别背!多练习代码就会记住了
字符和ASCLL编码
我们在键盘中敲出来的字符,例如:a、b、c、*、&等都叫字符,在C语言中,我们需要将字符用单引号引起来,例如:‘a’、‘b’、‘c’、'&'等。
在上篇我们知道计算机只能读懂二进制,计算机中的所有数据都是以二进制的形式进行存储的。我们给每个字符编一个二进制序列,这个序列就叫作编码。
为了方便,美国国家标准学会出台了一个标准的ASCLL编码,C语言中的字符就遵循了ASCLL编码的方式。
ASCLL码表
不需要记住所有,只需要记住几个特殊的就可以
- 字符A ~ Z对应的ASCLL码值从65 ~ 90
- 字符a ~ z对应的ASCLL码值从97 ~ 122
- 大小写字符(A与a)的ASCLL码值的插值为32
- 数字字符0 ~ 9 对应的ASCLL码值为48 ~ 57
- 换行符 \n 的ASCLL码值为 10
- 0 ~ 31的这些字符是不可打印字符
那我们应如何使用ASCLL码值呢?
#include <stdio.h>
int main()
{
printf("%c\n",'A');//A
printf("%c\n",65);//A
return 0;
}
打印 可打印字符
#include <stdio.h>
int main()
{
for(int i = 32;i <= 127;i++){
printf("%c ",i);
if(i % 16 == 15){
printf("\n");//换行,所有字符都在一行太长了
}
}
}
字符串和/0
在C语言中用双引号引起来的一串字符被称为字符串,例如:“Hello World!”。
字符串的占位符用 \s 来表示,可以直接打印出来。
#include <stdio.h>
int main()
{
printf("%s\n","Hello World!");
return 0;
}
C语言中,在字符串的末尾隐藏着一个 \0 , \0 是字符串的结束标志。
例如:
#include <stdio.h>
int mian()
{
char arr1[] = {'a','b','c'};
char arr2[] = "abc";
printf("%s\n",arr1);
printf("%s\n",arr2);
return 0;
}
调试结果
为什么会出现烫烫烫~
让我们来观察一下arr1与arr2
可以看到arr1中并没有 \0 ,而arr2中有 \0 ,在前面我们提到 \0 是字符串的结束标志,当printf函数扫描到 \0 时停止扫描,而在arr1的数组中即使越界也没有找到 \0 ,于是出现调试的结果。
转义字符
前面提到的 \n 、\0 就是转义字符,顾名思义转变原来字符的意思。
\t :制表符,光标移到下⼀个水平制表位,通常是下⼀个8的倍数。
要注意后两种转义字符。
在这里做题练习一下
下图所示的代码调试结果为多少?
strlen是求字符串长度的函数(统计字符串中 \0 之前的字符的个数,不包含 \0)
#include <stdio.h>
int main()
{
printf("%zd\n",strlen("c:\test\130\test.c"));
return 0;
}
答案为13
这里注意 \t , \130 都是转义字符,算一个字符。
嘿 做完感觉类似的题都just so so
语句
- 空语句
#include <stdio.h>
int main()
{
;//空语句
return 0;
}
- 表达式语句
#include <stdio.h>
int main()
{
int a = 10;
int b = 0;
b = a + 10;//表达式语句
return 0;
}
- 函数调用语句
#include <stdio.h>
int Add(int a, int b){
return a + b;
}
int main()
{
int add = Add(1,2);//函数调用语句
return 0;
}
- 复合语句
#include <stdio.h>
int main()
{
int arr[10] = {0};
for(int i = 0;i < 10;i++){ //for循环中的循环体就是复合语句
arr[i] = 10 - i;
printf("%d\n",arr[i]);
}
return 0;
}
- 控制语句
- 条件语句:if 语句、switch语句;
- 循环语句:while语句、do while语句、for语句。
- 转向语句:continue语句、break语句、goto语句、return语句。
注释
注释 是对代码的说明,编译器不会执行,注释是给程序员看的,让我们更好的理解代码。
注释有两种方式
- /* */
#include <stdio.h>
int main()
{
/*printf("12345\n");
printf("abcdef\n");*/
printf("Hello World!\n");
return 0;
}
程序调试结果只有Hello World! ,被注释的部分并不执行。
2. //
#include <stdio.h>
int main()
{
printf("Hello World!");//打印Hello World!
return 0;
}
不要过度注释,现在这些简单的代码写注释是因为能更详细的讲解,方便初学者学习,更能看懂。
好贴心~