C语言学习笔记

基础语法

注释

cpp 复制代码
int main()
{
    //这是单行注释
/*
 * 多行注释
 */
}

变量

变量声明

格式:type name

cpp 复制代码
int main()
{
    //变量的声明
    int num;
    //变量使用
    num=1;
    //声明多个变量
    int num1,num2;
    //变量的初始化
    int num3=1;
  
}
cpp 复制代码
int num;
num=10;

常量

cpp 复制代码
const double PI = 3.14;

基础数据类型

数据类型 存储大小 范围
char 1 字节 -128 到 127
signed char 1 字节 -128 到 127
unsigned char 1 字节 0 到 255
short 2 字节 -32,768 到 32,767
signed short 2 字节 -32,768 到 32,767
unsigned short 2 字节 0 到 65,535
int 2 或 4 字节 -32,768 到 32,767
signed int 2 或 4 字节 -32,768 到 32,767
unsigned int 2 或 4 字节 0 到 65,535
short int 2 字节 -32,768 到 32,767
signed short int 2 字节 -32,768 到 32,767
unsigned short int 2 字节 0 到 65,535
long int 4 字节 -2,147,483,648 到 2,147,483,647
signed long int 4 字节 -2,147,483,648 到 2,147,483,647
unsigned long int 4 字节 0 到 4,294,967,295
float 4 字节
double 8 字节
long double 10 字节

整数

cpp 复制代码
int id;

unsigned只能储存零值和正数。

cpp 复制代码
unsigned int x;
int y;

浮点数

cpp 复制代码
float salary;

字符

cpp 复制代码
char test = 'h';

运算符

类型转换

语法:(type)name

注意:始终建议将较低的值转换为较高的值,以避免数据丢失。

输入

输出

数据类型 格式说明符
int %d
char %c
float %f
double %lf
short int %hd
unsigned int %u
long int %li
long long int %lli
unsigned long int %lu
unsigned long long int %llu
signed char %c
unsigned char %c
long double %Lf

整数输出

cpp 复制代码
int main() {
    int num=10;
    printf("%d",num);
}

单精度浮点和双精度浮点数输出

cpp 复制代码
int main() {
    float num=1.3;
    double num1=1.4;
    printf("%f\n",num);
    printf("%lf\n",num1);

}

打印字符

cpp 复制代码
int main() {
    char c='1';
    printf("%c\n",c);
}

检查变量的大小

格式:sizeof(name)

cpp 复制代码
int main() {
    short b;
    int c;
    long long e;


    printf("%d\n",sizeof(b));
    printf("%d\n",sizeof(c));
    printf("%d\n",sizeof(e));

}

空类型

void是空类型,一般用于函数的返回类型表示,表示该函数啥都不返回。

例如,如果函数不返回任何内容,则其返回类型应为void。

储存类

复合数据类型

数组

数组的语法 : Type Name[Size];

cpp 复制代码
int main()
{
    //数组的声明
    int arr[10];
    //数组的初始化
    int arr1[10]={1,2};
}

字符串

在C语言编程中,字符串是以null字符\0结束的字符序列。

cpp 复制代码
//声明字符串
char s[5];
//初始化字符串
char c[] = "abcd";
char c[50] = "abcd";
char c[] = {'a', 'b', 'c', 'd', '\0'};
char c[5] = {'a', 'b', 'c', 'd', '\0'};

指针

指针是用来储存变量地址的特殊变量
声明指针

语法:type *name

cpp 复制代码
int *p

指针赋值变量地址

cpp 复制代码
int main()
{
    int *p;
    int num=5;
    p=#
    printf("%d", *p);
}

流程控制

for

while

break continue

if...else

swtich

goto

函数

序号 C函数方面 语法
1 函数声明 return_type function_name(argument_list);
2 函数调用 function_name(argument_list)
3 函数定义 return_type function_name(argument_list){function body;}

没有返回值

cpp 复制代码
void hello(){
    printf("hello c");
}

结构体

声明结构体

cpp 复制代码
int main(){
//定义结构体
    struct SIMPLE
    {
        int a;
    };
//声明结构体
    struct SIMPLE t1{}, t2[20], *t3;
    printf("%d",t1.a);
}

typedef 声明结构体

cpp 复制代码
int main(){
//定义结构体
    typedef struct
    {
        int a;
    }SIMPLE;
//声明结构体
    SIMPLE t1{}, t2[20], *t3;
    printf("%d",t1.a);
}

初始化匿名结构

cpp 复制代码
int main(){
struct {
    int a;
};
}

初始化匿名结构体带默认值

cpp 复制代码
int main(){
struct {
    int a;
}s={1};
}

嵌套结构体

结构体包括其他结构

结构体包括指向自己的指针

cpp 复制代码
struct NODE
{
    char string[100];
    struct NODE *next_node;
};

指向结构的指针

cpp 复制代码
int main(){
//定义结构体
    typedef struct
    {
        int a;
    }SIMPLE;
//声明结构体指针
    SIMPLE  *pt,t;
    t.a=1;
    pt=&t;
    printf("%d",pt->a);

}
相关推荐
HinsCoder33 分钟前
【渗透测试】——Upload靶场实战(1-5关)
笔记·学习·安全·web安全·渗透测试·测试·upload靶场
听风若依36 分钟前
排序学习笔记
笔记·学习
Filotimo_40 分钟前
【自然语言处理】实验三:新冠病毒的FAQ问答系统
人工智能·经验分享·笔记·python·学习·自然语言处理·pycharm
IM_DALLA1 小时前
【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL21
学习·fpga开发
狐心kitsune1 小时前
erlang学习:Linux常用命令1
linux·学习·erlang
小游鱼KF1 小时前
Spring学习前置知识
java·学习·spring
mez_Blog2 小时前
个人小结(2.0)
前端·javascript·vue.js·学习·typescript
Rookie也要加油2 小时前
WebRtc一对一视频通话_New_peer信令处理
笔记·学习·音视频·webrtc
liangbm32 小时前
MATLAB系列09:图形句柄
图像处理·笔记·计算机视觉·matlab·matlab绘图·工程基础·图形句柄
David猪大卫2 小时前
数据结构修炼——顺序表和链表的区别与联系
c语言·数据结构·学习·算法·leetcode·链表·蓝桥杯