目录
// std - standard - 标准库// i input 输入// o output 输出
一、什么是C语言
C语言是一种计算机程序设计语言。 它既有 高级语言 的特点,又具有 汇编语言 的特点。 它可以作为 系统设计 语言,编写工作系统 应用程序 ,也可以作为应用 程序设计语言 ,编写不依赖 计算机硬件 的应用程序。
二、新手适合的软件
VS2022这款软件比较适合新手,它直接安装就可以使用几乎不用什么配置。
在创建文件时要将文件名的后缀改为 “.c” 的形式。
在写C语言时第一行要加上下面这行代码就可以正常使用。
#define _CRT_SECURE_WARNINGS 1
![icon-default.png?t=N7T8](https://csdnimg.cn/release/blog_editor_html/release2.3.6/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=N7T8)
三、第一个C语言程序
#define _CRT_SECURE_WARNINGS 1
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = {"Hello!" };
printf("%d\n", strlen(arr));
return 0;
}
四、解释第一个代码的意思
1.main函数
代码一般都是从main函数开始,为代码的入口。main函数也叫做:主函数。main函数在代码中只能有一个。
main前面的 int 表示整型,int main 表示返回一个整型函数,与return 0; 相照应。
2.printf和库函数
printf("hello!\n");
printf 表示信息打印。上述代码是用printf 函数打印字符串。只要将想打印的字符串放入到双引号中赋值给printf 打印就能获得你要的信息。
printf 也可以打印其他类型的数据。例如:
int n = 100;
printf("%d\n", n); //printf打印整型
printf("%c\n", 'a'); //printf打印字符
printf("%f\n", 3.14); //printf打印单精度浮点型
printf("%lf\n", 2.5); //printf打印双精度浮点型
这里的%d、%c、%ld 为占位符,分别表示整数,字符,小数。还有 %f 也表示小数,打印的数据保留6位小数。
同时我们使用库函数时,要包含头文件的,比如:上述的printf 就要包含 stdio.h 这个头文件。具体方法如下:
#include <stdio.h>
// std - standard - 标准库
// i input 输入
// o output 输出
3.那什么是库函数呢?
五、关键字介绍
- 关键字都有特殊的意义,是保留给C语⾔使⽤的
- 程序员⾃⼰在创建标识符的时候是不能和关键字重复的
- 关键字也是不能⾃⼰创建的。
C语⾔的32个关键字如下:
auto break case char const continue default do double else enumexternfloat for goto if int long register return short signed sizeofstaticstruct switch typedef union unsigned void volatile while
其他的关键字,可参考链接:
https://zh.cppreference.com/w/c/keywordhttps://zh.cppreference.com/w/c/keyword
六、字符和ASCII码
可参考链接:
https://zh.cppreference.com/w/cpp/language/asciihttps://zh.cppreference.com/w/cpp/language/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个字符是不可打印字符,⽆法打印在屏幕上观察
#include <stdio.h>
int main()
{
printf("%c\n", 'Q');
printf("%c\n", 81);//这⾥的81是字符Q的ASCII码值,也是可以正常打印的
return 0;
}
//打印结果为
Q
Q
将%c改为%d打印结果会变化
#include <stdio.h>
int main()
{
printf("%d\n", 'Q');
printf("%d\n", 81);//这⾥的81是字符Q的ASCII码值,也是可以正常打印的
return 0;
}
//打印结果为
81
81
#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;
}
//打印结果为
! " # $ % & ' ( ) * + , - . /
0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O
P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o
p q r s t u v w x y z { | } ~
七、字符串和/0
#include <stdio.h>
int main()
{
printf("%s\n", "hello C");
printf("hello c");
return 0;
}
//打印数据为
hello C
hello c
#include <stdio.h>
int main()
{
char arr1[] = {'a', 'b', 'c'};//arr1数组中存放3个字符
char arr2[] = "abc"; //arr2数组中存放字符串
printf("%s\n", arr1);
printf("%s\n", arr2);
return 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;
}
结果如下,是否与你想的一样。
在arr1的数组后加一个\0就可以正常打印了。
第三个printf 结果只有abc 而没有全部打印,证明在打印字符串中遇到\0就会自动停止直接打印。
八、转义字符
C语⾔中像这样的转义字符还有⼀些,具体如下:
#include <stdio.h>
int main()
{
printf("%c\n", '\'');
printf("%s\n", "\"");
printf("c:\\test\\code\\test.c\n");
printf("\a");
printf("%c\n", '\130'); //130是8进制,转换成10进制是88,以88作为ASCII码值的字符是'X'
printf("%c\n", '\x30'); //x30中的30是16进制,转换成10进制是48,以48作为ASCII码值的字符是'0'
return 0;
}
答案如下:
九、语句和语句分类
1.空语句
#include <stdio.h>
int main()
{
;//空语句
return 0;
}
2.表达式语句
#include <stdio.h>
int main()
{
int a = 20;
int b = 0;
b = a + 5; //表达式语句
return 0;
}
3.函数调⽤语句
#include <stdio.h>
int Add(int x, int y)
{
return x+y;
}
int main()
{
printf("hehe\n");//函数调⽤语句
int ret = Add(2, 3);//函数调⽤语句
return 0;
}
4.复合语句
#include <stdio.h>
void print(int arr[], int sz) //函数的⼤括号中的代码也构成复合语句
{
int i = 0;
for(i=0; i<sz; i++)
{
printf("%d ", arr[i]);
}
}
int main()
{
int i = 0;
int arr[10] = {0};
for(i=0; i<10; i++) //for循环的循环体的⼤括号中的就是复合语句
{
arr[i] = 10-i;
printf("%d\n", arr[i]);
}
return 0;
}
5.控制语句
十、注释是什么?为什么写注释?
注释的快捷键:
注释:CTRL+K+C
取消注释:CTRL+K+U
1.注释的2种形式 :
1./**/ 的形式
/* 注释 */
/*
这是⼀⾏注释
*/
int fopen(char* s /* file name */, int mode);
/*
printf("a ");
printf("b ");
printf("c "); /* 注释⼆ */
printf("d ");
*/
2.// 的形式
// 这是⼀⾏注释
int x = 1; // 这也是注释
2.不管是哪⼀种注释,都不能放在双引号里面。
printf("// hello /* world */ ");
3.注释会被替换
完!让我们一起努力向着目标前行。