C语言学习(详细版)一:概述

本文详细介绍了C语言的基础知识,包括数据类型(如char、int、float、double等)、变量的声明与作用域、常量(字面量与const修饰的常量)、字符串及其转义字符、各种操作符(算术、位、赋值等)以及常用关键字(如static、define等)。此外,还深入讲解了静态变量、宏定义、指针和结构体的概念与用法,为C语言的学习提供了全面的入门指南。
摘要由CSDN通过智能技术生成

什么是C语言

  • C语言是一门面向过程、广泛应用于底层开发的计算机编程语言。
  • 常用的编译器有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。

C语言的数据类型

  • 字符数据类型:char
  • 短整型:short int
  • 整型:int
  • 长整型:long
  • 更长的整型:long long
  • 单精度浮点数:float
  • 双精度浮点数:double

变量

  • C语言中,变量要定义在当前代码块的最前面,否则编译会报错。
    在这里插入图片描述
  • 变量的作用域
    – 局部变量的作用域是变量所在的局部范围
    – 全局变量的作用域是整个工程
  • 变量的生命周期
    – 局部变量的生命周期从进入作用域开始,离开作用域结束
    – 全局变量的生命周期是整个程序的生命周期

常量

  • 字面常量
  • const修饰的常变量
#include <stdio.h>

int main()
{
	//字面量
	34
	//const-常属性,修饰常变量
	const int num =4;
	printf("%d\n",num)
	
	return 0;
}
  • #dedine定义的标识符常量
#include <stdio.h>
//define定义的标识符常量
#define MAX 10

int main()
{
	int arr[MAX] = {0};
}
  • 枚举常量
#include <stdio.h>
//枚举:一一列举
//枚举关键字enum
enum Sex
{
	MALE,
	FEMALE,
	SECRET
}
//MALE,FEMALE,SECRET为枚举常量
int main()
{
	enum Sex s = FEMALE;
	printf("%d\n",MALE);//0
	printf("%d\n",FEMALE);//1
	printf("%d\n",SECRET);//2
	return 0;
}

字符串

由双引号引起来的一串字符串称为字符串字面量,字符串的结束标志是一个\0的转义字符,在计算字符串长度的时候\0是结束标志,不算作字符串内容。

"hello bit.\n"

操作符

  • 算数操作符
  • 移位操作符
  • 位操作符
  • 赋值操作符
  • 单目操作符
  • 关系操作符
  • 条件(三目)操作符
  • 逗号表达式

转义字符

转义字符释义
\?在书写连续多个问号时使用,防止他们被解析成三字母词
\’用于表示字符常量’
\"用于表示一个字符串内部的双引号
\\用于表示一个反斜杠,防止它被解释为一个转义序列符
\a警告字符,蜂鸣
\b退格符
\f进纸符
\n换行
\r回车
\t水平制表符
\v垂直制表符
\dddddd表示1-3个八进制的数字,如\130X
\xdddd表示2额十进制数字,如\x30 0

语句

  • 选择语句
  • 循环语句
  • 函数

常见关键字

auto break case char const continue default do double else enum extern float for goto if int long redister return short signed sizeof static static struct switch typedef union unsigned void volatile while typedef

static静态变量

  • 修饰局部变量:局部变量的生命周期变长
    在这里插入图片描述
    在这里插入图片描述
  • 修饰全局变量:改变了变量的作用域,让静态的全局变量只能在自己所在的源文件内部使用
    在这里插入图片描述
    在这里插入图片描述
  • 修饰函数:改变了函数的链接属性
    在这里插入图片描述
    在这里插入图片描述

define 宏定义

  • 定义标识符常量
#define MAX 100
  • 定义带参数的宏
#include <stdio.h>
//函数的实现
int Max(int x,int y)
{
	if(x>y)
		return x;
	else
		return y;
}
//宏的定义
#define MAX(X,Y) (X>Y?X:Y)

int main()
{
	int a=10;
	int b=60;
	//函数的方式
	int max = Max(a,b);
	printf("最大值为%d\n",max);
	//宏的方式
	max = MAX(a,b);
	printf("最大值为%d\n",max);
}

指针

int main()
{
	int a =10;//4个字节
	int* p =&a;//取地址
	*p = 20;//*-解引用操作符
	printf("a=%d\n",a);
}

PS:指针大小在32位平台是4个字节,64位平台是8个字节。

结构体

//创建结构体类型
struct Book
{
	char name[20];
	short price;
};

int main()
{
	//利用结构体类型创建一个该类型的结构体变量
	struct Book b1 = {"C语言基础知识",34};
	struct Book* pd = &b1;
	
	//.   结构体变量.成员
	printf("书名:%s\n",b1.name);
	printf("价格:%d\n",b1.price);

	printf("书名:%s\n",(*pd).name);
	printf("价格:%d\n",(*pd).price);
	
	//->  结构体指针->成员
	printf("书名:%s\n",pd->name);
	printf("价格:%d\n",pd->price);
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值