C语言总结

这篇博客总结了C语言的基础知识,涵盖了数据类型如整型、浮点型、字符型等,运算符包括数据、逻辑、位运算等,以及语句如if-else、for、while。还讨论了数组、函数定义与调用,特别是结构体的定义、初始化和引用,以及简单的链表概念。此外,文章还提及了枚举类型及其用法。
摘要由CSDN通过智能技术生成

对于C语言的总结:

指令:

头文件的标准输入输出:#include<stdio.h>
调用常用系统函数需要加入头文件:#include<stdlib.h>
调用数学:#include<math.h>
调用库函数:#include<string.h>
宏定义:#define N 3 是宏定义,define是定义的意思,这句的意思是把N的值定义为3。在程序中后面出现的所有N的值都为3。

数据类型:

整型数据:

int 基本整型,4字节,取值范围:-2^31~2^31-1。
unsigned int 无符号基本整型,4字节,取值范围:0~2^32-1。
short  短整型,2字节,取值范围:-2^15~2^15-1。
unsigned short 无符号短整型,2字节,取值范围:0~2^16-1。
long 长整型,4字节,取值范围:同int。
unsigned long 无符号长整型,4字节,取值范围同unsigned int。
long long 双长型,8字节,取值范围:-2^63~2^63-1。
unsigned long long 无符号双长型,8字节,取值范围:0~2^64-1。

浮点型数据:

float 单精度浮点型,4字节,取值范围:0以及1.2*10^-38~3.4*10^38。
double 双精度浮点型,8字节,取值范围:0以及2.3*10^-308~1.7*10^308。
long double 不同的编译系统不相同。

字符型数据:

char 类型数据:![ASCII字符表码](https://img-blog.csdnimg.cn/20191029111310712.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hlU2hpRmFuZw==,size_16,color_FFFFFF,t_70)

字符串型数据:

String 类型,8字节
例如:String a = "你好!";
将字符串(你好!)赋值给了a。
如果输出a那么将得到
你好!

布尔型数据(bool):

只有两个值true(正确)和false(错误);

运算符:

数据运算符:

+加法运算
x++   等同于(x=x+1)
++x   等同于输出x,然后x=x+1
-   减法运算
- a 代表a的负数
x--     --x   用法同于x++   ++x
* 乘法运算
/ 除法运算    
 % 对除法取余数
 = 赋值

逻辑运算符:

 !非————不
 || 或————或者
 && 且————并且

位运计算符

 << 二进制位左移————————例如:a=5的二进制是00000101;a<<2相当于00010100。
 >> 二进制位右移————————例如:a=5的二进制是00000101;a>>2相当于00000001。
 & 按位与—————————例如5&9,5的二进制位是00000101,9的是00001001,那么5&9就是保留二进制位相同的数不相同的补0,那么5&9=00000001也就是1。
 | 按位或————————例如5|9,二进制位有一个是1,那么结果为1,所以5|9=00001101也就是13。
 ^ 按位异或————————例如5^9,二进制位不同为1,相同为0,所以5^9=00001100也就是12。

条件运算符:

例如:a>b?a:b意思是a大于b吗?如果大于输出a,不然输出b;

强制类型转换

一般来说数据类型会自动从小到大转换
(转换类型)需要转换的类型——————例如(int)1.1//将1.1强制转换为int类型的数据,结果是1,直接舍弃小数。

数据的输出与输入:

输出:

一般用printf输出:
例如输出int型变量a的值:
printf("%d",a);//输出整型数据a的值
长整型数据用"%ld"输出
浮点型数据用"%f"输出
输出浮点型小数位数在f前加上.和小数位数即可输出确定的小数位数。
字符串型数据用"%s"输出。
字符型用"%c"输出。
同时输出多种类型数据如下:
printf("%d %ld %f %.1f %s %c",a,b,c,d,e,f"	);
依次输出整型数据a,长整型数据b,浮点型数据c,一位小数浮点型数据d,字符串型数据e,字符型数据f。
字符串型数据还可以用puts输出。
puts(a);//输出字符串a。
puts("你好");//输出  你好
puts只能输出一个字符串。而且输出时自带换行符。
strcpy将一个字符串赋值到另一个地址空间。

输入:

一般用scanf输入:
例如输入int型数据赋值给a:
int a;
scanf("%d",&a);
同输出
长整型数据用"%ld"输入
浮点型数据用"%f"输入
字符串型数据用"%s"输入。
字符型用"%c"输入。
字符串型还可以用puts输入。
但是gets也只能输入一个字符串。使用scanf() 配合%s输入字符串时,这种方法只能获取一个单词,即遇到空格等空字符就会返回。如果要读取一行字符串,比如:
I love you!
这种情况,scanf()就无能为力了。这时我们最先想到的是用gets()读取.
gets()函数从标准输入(键盘)读入一行数据,所谓读取一行,就是遇到换行符就返回。gets()函数并不读取换行符'\n',它会	把换行符替换成空字符'\0',作为c语言字符串结束的标志。

语句:

if-else语句:

格式为:
if(判断条件){语句}//如果判断条件成立执行大括号内的语句。
else if(判断条件){语句}//如果上一条不成立就判断else if后的判断条件是否成立。
else{语句}//如果都不成立就直接执行else的语句。

for语句:

格式为:
for(A;判断条件;B)
{循环体}
先执行A,然后判断条件是否成立,如果成立,执行循环体,然后执行B,在执行A进行循环。如果不成立,结束循环。

while语句:

格式为:
while(循环条件)
{循环体}
如果循环条件成立执行循环体内的语句,如果不成立,结束循环。

do while语句:

类似于while语句,但是do while语句至少执行一次。

switch语句:

格式为:
	switch(常量)
	{
	case 常量1:语句1;break;如果常量1==常量,执行语句1,如果有break,结束循环。没有继续向下比较。不相等向下比较。
	case 常量2:语句2;break;
	.
	.
	.
	default:语句n+1;以上全部不行,则执行语句n+1。

break语句与continue语句区别比较:

bre
  • 10
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值