注:大概了解c语言知识
1.什么是C语言 C语言是一门通用的计算机编程语言,广泛应用与底层开发;
2.编译第一个C语言程序
#include
int main()
{ printf("hello world\n");
return 0;
}
文章图片
解释:
1.#include:标准输入输出头文件
2.main:主函数的程序入口(有且仅有一个)
3.printf:输出函数
3.C语言的数据类型 1.数据类型的存在意义:为了丰富表达生活中的值;
2.数据类型:
文章图片
3.数据类型:实际上是为了定义不同的变量,在计算机上申请相对应的空间大小(单位是字节);
每种类型的大小:
文章图片
注:sizeof:类型的大小(单位是字节)
C语言语法规定:sizeof(long)>=sizeof(int); 却决于不同的编译器
4.变量 变量的含义:
#include
int main()
{
int age = 10;
char ch = 'w';
float a = 3.14;
printf("%d\n", age);
printf("%c\n", ch);
printf("%f\n", a);
printf("\n");
//agecha都是变量:可以被修改的
age = 20;
ch = 'a';
a = 1.41;
printf("%d\n", age);
printf("%c\n", ch);
printf("%f\n", a);
return 0;
}
文章图片
变量的分类: 局部变量和全局变量
int num = 1;
//全局变量
int main()
{
int num = 2;
//局部变量
printf("num=%d\n", num);
return 0;
}
当局部变量和全局变量相同时,局部变量优先使用
文章图片
3.变量的作用域和生命周期局部变量的作用域是变量所在的局部范围
全局变量是的作用域是整个工程(.c的文件)
局部变量的生命周期是进入作用域开始,出作用域结束
全局变量的生命周期是整个程序的生命周期
5.常量 1.字面常量
3.14;2.const修饰的常变量:当变量用const修饰的时候,变量就具有了常属性(不能被改变)
abc;
文章图片
3.#define定义的标识符常量
文章图片
4.枚举常量:生活中不变的量
enum sex//枚举类型
{
male,
female,//枚举成员
secret};
int main()
{
enum sex S;
//定义枚举变量
return 0;
}
6.字符串+转义字符+注释 字符串: 由双引号引起的一串字符
"hello world";字符串的打印:使用%s
文章图片
字符串的结束标志:以‘\0’为结束标志(字符串末尾默认添加'\0');
例:通过计算字符串的个数来显示’\0‘的重要性:
strlen:计算字符串的个数,以’\0‘为结束
头文件:#include
文章图片
文章图片
文章图片
转义字符:转变原来的意思
打印’和“
\'\"
文章图片
\t:水平制表符
\n:换行
\ddd:表示1~3个八进制的数字
\xdd:表示两个16进制的数字
文章图片
注释 :
/**///:两种注释方法7. 选择语句
ifelse
文章图片
8.循环语句先简单介绍一种循环:while循环
文章图片
9.函数加法函数:
int Add(int x, int y)//函数形参
//int :函数的返回类型
{
return x + y;
}
int main()
{
int num1 = 10;
int num2 = 20;
int ret = Add(num1, num2);
// Add:函数名num1,num2函数实参
printf("%d\n", ret);
return 0;
}
函数的特点:简化代码,代码复用
10.数组
文章图片
11.简单操作符:
+-*/%+:加法操作符
-:减法操作符
*:乘法操作符
/:除法操作符(取商)
%:取模操作符(取余)
文章图片
移位操作符:移二进制位
<<:左移操作符
>>:右移操作符
赋值操作符:
=+=-=*=/==:赋值;
+=:a=a+b等价与a+=b;
-=:a=a-b 等价与 a-=b;
……
单目操作符:
!逻辑反操作:0为假,非0表示真
文章图片
-负值
+正值
&取地址: 取出a的地址
文章图片
sizeof操作数的类型长度(以字节为单位)
~对一个数的二进制按位取反(后面详细介绍)
--前置、后置--:(同理)
++前置、后置++
文章图片
*间接访问操作符(解引用操作符)
文章图片
(类型)强制类型转换
文章图片
将float类型的强制转化为(int);
关系操作符:
>:大于
>=:大于等于
<:小于
<=:小于等于
!=不相等
==判断相等
逻辑操作符:
&&:逻辑与
文章图片
||:逻辑或
文章图片
条件操作符:
exp1 ? exp2 : exp3
文章图片
逗号表达式:
exp1, exp2, exp3, …expN:执行最后一次操作
[]:下标引用操作符12.关键字介绍: 关键字typedef介绍: typedef:类型重定义
():函数调用操作符
.:结构体访问操作符
—>:结构体操作符:
文章图片
关键字static static修饰局部变量:
【初识C语言】
文章图片
文章图片
图1调用10次test函数,定义局部变量的时候,内存分配到栈区(进入作用域生命周期开始,出作用域生命周期结束),所以i每次都会从0开始:
图2调用10次test函数,用static修饰局部变量的时候,内存分配会从栈区到静态区(进入作用域生命周期开始,出作用域生命周期不结束,相当于延长了局部变量的生命周期),所以每次i都会从上次的值自增一;
static修饰全局变量:
文章图片
文章图片
图一定义的全局变量只要在另一个.C文件用extern声明一下就可以使用(因为全局变量的作用域是整个工程),因为全局变量再编译和链接生成可执行程序的时候具有外部链接属性
图二定义的全局变量用static修饰时,全局变量的外部链接属性变成了内部链接属性(作用域变成了.c文件了),其他源文件(.C)不能再使用了;
static修饰函数:
文章图片
文章图片
图一定义的函数只要在另一个.C文件用extern声明一下就可以使用(因为函数的作用域是整个工程),因为函数再编译和链接生成可执行程序的时候具有外部链接属性
图二定义的函数用static修饰时,函数的外部链接属性变成了内部链接属性(作用域变成了.c文件了),其他源文件(.C)不能再使用了;
13.#define定义常量和宏
文章图片
文章图片
14.指针内存:计算机电脑上将内存划分为一个个的单元,每个单元大小为一个字节,每个内存在计算机上都有对应的地址,而指针就是用来存放内存的地址;
文章图片
int*p:整形指针不同类型指针在内存中所占的字节:
char*p:字符指针
float*p:单精度浮点数指针
double*p:双精度浮点数指针
文章图片
指针的大小与类型无关:在32位平台占4个字节,在64位平台占8个字节
15.结构体: 当我们用描述一个复杂对象的时候不能用内置类型来描述,因此我们可以通过自定义类型结构体来描述一个复杂的对象
例:描述一个学生
文章图片
结构体的另一种打印:通过指针
文章图片
16.总结:本章是简单介绍了C语言的基础知识的基本框架,主要目的是先了解一下C语言主要学习什么知识,对C语言有一个大体的了解;
注:以上是自己对C语言的一个基础认知,希望能帮助你对C语言有一个大体认知,有不足的地方希望能够指正,谢谢大家!
推荐阅读
- C语言分支和循环语句
- Unix环境高级编程|用Linux / C实现基于自动扩/减容线程池+epoll反应堆检测沉寂用户模型的服务器框架(含源码)
- 数据结构|【数据结构】约瑟夫环(单向循环链表的应用)——C语言
- 比赛经验|2022年6月第十三届蓝桥杯软件类国赛(决赛)C组C语言/C++真题及答案 with 感想
- ROS机器人操作系统开发教程|ROS机器人操作系统开发视频教程进阶-小乌龟演示(一)
- 小项目|【c语言五子棋】简单ai算法(理论)
- 小项目|【c语言五子棋】简单ai算法初步(实际)
- 贪吃蛇 C语言
- 数据结构实验报告|数据结构前言练习