C语言零碎知识点 02

i++是先赋值在+1,而++1是先+1再赋值

很多情况下逗号都只是单纯地用做分隔符

goto 语句用于一次性跳出多层循环,因为break只能跳出一层,其余情况下不要用,因为它会破坏代码本身的逻辑。

C语言中交换两个变量需要一个零时变量,不能直接 a,b = b,a

小tip: if a == 0可以写成,if !a

数组定义时\[\]里面的数在c99的标准下也可以是变量。

数组越界问题c语言不会报错,只会随便给一个数,所以很难发现

字符串的定义方式,在c语言中没有字符串这一结构,但是可以定义字符串常量和字符数组,以下是定义字符数组的方法,建议用最下面的一种

使用字符串相关的函数需要加上

#include <string.h>

sizeof 字符数组,返回字符的尺寸,包含最后的'\0'

strlen 字符数组,返回字符的长度,不包含最后的空字符

strcpy(str1,str2)要注意str1一定要比str2长,要不然会溢出

strncpy(str1,str2,n)是把str2的前n个字符拷贝到str1上,但是要注意n不包含'\0',所以要给新得到的str1加上'\0'

strcat(str1,str2)在str1后面连接str2

strncat(st1,str2,n)和strncpy一样,但是会自动追加'\0',无需另外添加

strcmp(str1,str2),从第一个字符开始对比ascii码,如果str1小返回<0的值,str1大返回>0的值,相等则返回0

strncmp(str1,str2,n)只对比前n个数

二维数组在内存中的存放方式

也可以只定义部分数据,其他元素被设置为0,比如下面这个定义每行的第一个数据

矩阵的转置

内存存放数据的方式,一个地址对应一个字节。一个指针变量拥有四个字节,存放一个地址,这个地址我们称为指针。

类型名是指针变量存放的地址对应的数据的类型

这里取值运算符*和定义指针时的*是同一个符号,这属于符号的重用,在不同的地方有不同的用处。

%p可以打印地址

从第三循环跳到第一循环可以用goto语句,跳转后的位置如果没有其他语句,必须得加一个;

数组名只是一个地址,而指针是一个左值(既是一个地址的标识符,又是一个可变的值)

指针数组是一个数组,每个数组元素存放一个指针变量

数组指针是一个指针,指向数组的指针

a = condition ? result_if_true : result_if_false

用getchar()来代替scanf()有时更加方便

使用sqrt函数前需要加库 #include <math.h>

矩阵乘法

定义参数数量不确定的函数

以下代码把数字转换为字符串,while的妙用,++运算符的妙用

0-9的数字想转换成对应的字符类型直接加一个'0' 就行。

switch case的用法别忘记了。

相关推荐
IvanCodes1 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
aramae2 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
无敌贵点大王3 小时前
RTThread学习记录11——RT-Thread 设备模型吃透:UART/ADC/PWM/PIN 到底有什么区别?
c语言·stm32·学习·链表
Logic1014 小时前
C语言/数据结构位运算题解:异或XOR找出时尚聚会中的“独特颜色“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
qq_2518364575 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理6 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手6 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长7 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Escalating_xu8 小时前
【C 语言项目】数组和函数综合实践:从零实现控制台扫雷游戏
c语言