本篇主要讲
1.c语言知识大纲
2.学习过程遇到的问题和思考
一.数据类型
这里写了人生第一个c语言程序hello world
#include
int main()
{
printf("Hello, World");
return(0);
}
hello world hello c语言!
额外没什么好讲的,熟记每种数据需要对应的符号即可
二.变量,常量
数据有两种表现形式:常量和变量
如图,常量分为:整形常量,实型常量,字符常量
变量:
- 变量是用来存储数据的容器,可以在程序执行过程中被赋予不同的值。
- 变量的声明通常指定了数据类型,例如整型(int)、浮点型(float)等。
常量:
- 常量与变量类似,但一旦被初始化赋值后,其值就不能被改变。
- 常量通常用于存储那些在程序执行过程中不会改变的值。
整型常量:
- 整型常量是没有小数部分的数字,例如1110和198。
小数类型:
- 小数类型是包含小数点的数字,例如1.98。
实型常量:
- 实型常量是更广义的术语,包括了小数类型和其他可能的数值类型。
指数类型:
- 指数类型常量使用科学记数法表示,例如3.12e8,表示3.12乘以10的8次方。
字符常量:
- 字符常量是单个字符,通常用单引号包围,例如'a'或'1'。
转义字符:
- 转义字符是特殊的字符序列,用来表示那些无法直接输入的字符,例如换行符(\n)、制表符(\t)等。
转义字符
(注意使用反斜线防止误识)
int main() { // 故意不转义双引号 printf("He said, "Hello, World!"\n"); return 0;
#include <stdio.h> int main() { // 正确的转义字符使用 printf("He said, \"Hello, World!\"\n"); return 0; }
字符串:
字符串是由字符组成的序列,可以包含一个或多个字符,通常用双引号包围,例如"Hello, World!"。
三.运算符的使用
#include <stdio.h>
int main()
{
int a = 21;
int b = 10;
int c;
c = a + b;
printf("Line 1 a + b= %d\n", c);
c = a - b;
printf("Line 2 a - b= %d\n", c);
c = a * b;
printf("Line 3 a * b= %d\n", c);
c = a / b;
printf("Line 4 a / b= %d\n", c);
c = a % b;
printf("Line 5 a % b= %d\n", c);
c = a++; // 赋值后再加 1 ,c 为 21,a 为 22
printf("Line 6 a++的值是 %d\n", c);
c = a--; // 赋值后再减 1 ,c 为 22 ,a 为 21
printf("Line 7 a--的值是 %d\n", c);
四.函数
函数由一个函数头和一个函数主体组成,可分为返回类型,函数名称,函数主体,参数
调用加法函数示例:
#include <stdio.h>
// 定义一个函数,用来计算两个数的和
int addNumbers(int a, int b) {
return a + b;
}
int main() {
// 调用函数
int result = addNumbers(3, 4);
printf("结果是: %d\n", result);
return 0;
}
2.学习过程的问题和思考
1.变量必须先声明再使用
函数给出样本函数需要的变量十return
eg:int add(int a,int b)
{return a十b}
add printf可以打印整形占位符%d 而%d可在后方解释
/n跟在变量之后,可使输出结果换行
证明字符串中/0的存在
在看书时书上提到每一个字符串后都跟了个/0
那么该如何证明呢f
先用char数组放一个bit如图
使用监视窗口看我们使用的char数组
可见
#include <stdio.h>
int main() {
char arr[] = "hello"; // 定义并初始化字符数组
// 打印数组内容
for (int i = 0; arr[i] != '\0'; i++) {
printf("%c", arr[i]);
}
printf("\n"); // 打印换行符
return 0; // 程序正常退出
}
/0似乎就是生物中的终止密码子
申明一个变量之前可以使它初始化 eg int input=0
strlen(测字符串长度)
→随机值(未用/0结束字符串)
puts函数
puts自带结尾换行,但不可包括太长
puts函数可以按顺序输出作为实参的字符串,并在结尾换行。也就是说,puts(".")与
printf("\n")的功能基本相同
#include <stdio.h>
int main() {
char arr[] = "hello"; // 定义并初始化字符数组
// 打印数组内容
for (int i = 0; arr[i] != '\0'; i++) {
printf("%c", arr[i]);
}
puts("hello");
printf("world");
printf("I am....");
return 0;
}
V
FLOAT
用(.float)将整名型运算浮点型运算从而保留小数点后的部分
将表达式a+b括起来的(),是优先运算的标记。如果该表达式是
a+b/2就变成了求a和b/2的和
引入add时,add前要加了个int这规定了add函数的返回类型只能是整型
左移右移操作符指的是二进制数向左/右移动一位0
00010→000100
typedef一一重命名
#include <stdio.h>
int main() {
typedef unsigned int u_int;
return 0;
}
(int此时也可以使用,但u_int表示int)
void test() {
static int a = 1;
printf("%d", a);
a++;
}
int main() {
int i = 0;
while (i < 10) {
test();
i++;
}
return 0;
}
i表示的是运行次数
static可使局部变量退出函数时免于销毁
eg:static int a(a免于销毁)
申明函数:函数名称 函数返回类型 参数类型
eg:extern(可选,引入的外部的)int Add (int,int)
Static即是扩音器又是笼子
if/else只能控制一句话
(打印出结果并展示)
添加大括号{}后可控制一段语句
return0;是函数结束标志,故printf和return并不执行.
下一期我会讲分支语句,算法,指针
大家一起进步
ps:因为是第一篇博客,做得很粗糙,见谅【抱拳】