C语言学习笔记(不定时更新,欢迎指正)

一、指针

1.变量类型和指针类型不一致时,不可将变量地址赋值给指针,否则可能发生访问越界或数据溢出等现象。

2.数组元素在内存中是连续存放的。

3.函数指针可以不需要解引用操作符(*),直接通过指针调用此函数。

4. %c前加空格,可处理垃圾字符;

二、字符串

1.%-md:输出格式为整形,长度为m(输出最小长度),-表示左对齐;

2.%s用于打印字符串;%c用于单个字符输出。

3.使用字符数组来保存的字符串是保存栈里的,保存栈里面东西是可读可写,所以可以修改字符串中的的字符;使用字符指针来保存字符串,它保存的是字符串常量地址,常量区是只读的,所以我们不可以修改字符串中的字符

4.十六进制的不同输出方式,%x ,%X ,%#x ,%#X ;

5.%d 输出的是 int , %ld 输出的是 long , %lld 输出的是 long long;

三、关键字

1.关键字const用来定义常量,const修饰的局部变量(存储在栈空间)不可以通过变量名修改但是可以通过指针修改,const修饰的全局变量(存储在常量区)既不可以通过变量名修改也不可以通过指针修改。

2.用register关键字修饰变量,就是编译程序时希望把该变量放到寄存器中,这样可以提高对该变量的访问速度。由前言可知,CPU访问寄存器的速度是高于访问内存的速度。当一个变量会被频繁调用时,可以用register去修饰变量,将变量保存在寄存器中,可以提升访问变量的速度。

四、结构体

1.结构类型定义在函数内部的作用域与局部变量的作用域是相同的(从定义的那一行开始, 直到遇到return或者大括号结束为止);结构类型定义在函数外部的作用域与全局变量的作用域是相同的(从定义的那一行开始,直到本文件结束为止)。

2.普通结构体使用“.”访问成员变量;结构体指针变量使用“->”访问成员变量。

3.结构体数组和普通数组并无太大差异, 只不过是数组中的元素都是结构体而已。

4.结构体大小计算规则:

(1)平台(操作系统)(2)计算机软件平台(vs,vc6.0,gcc),32/64

(3)对齐参数(操作系统对齐参数+c语言中数据类型的对齐参数)

eg:int

32位平台:最大和4字节对齐(linux)

32位平台:最大和8字节对齐(vs2022)

64位平台:最大和8字节对齐

(4)结构体首先为每个成员开辟空间,同时对齐到该变量的整数倍。当结构体空间开辟结束后,和结构体中最大的成员对齐。

5.共用体所占空间的大小是其最大成员的大小,共用体内部所有成员共享同一块内存空间(所有成员的首地址相同)

6.枚举型

用途:通常取代大面积宏的使用。

优点:(1)不需要定义太多宏 (2)解决宏常量冲突的问题

五、函数

  1. 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

  1. atoi函数是将字符串转换成整数。

int atoi (const char * str);

该函数的返回值为int类型的整数,转换后的值不可超出int可表示的范围。

六、链表

1.哨兵节点,也是头结点。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值