Hello,C(2)

文章讲述了C语言中的运算符优先级规则,包括算术、关系和逻辑运算符。讨论了不同类型的流程控制结构如if、switch、循环,并提到了goto语句。详细介绍了数组,包括一维、二维数组和字符数组的特性及使用注意事项,如数组下标检查和内存限制。还涉及字符串操作函数如strlen、strcpy等,以及内存管理函数如memset、memcpy。
摘要由CSDN通过智能技术生成

选择结构

  1. 通过优先级:算术运算符优先级高于关系运算符,关系运算符优先级高于逻辑与与逻辑或,相同优先级运算符从左至右进行结合

  1. if语句

  1. switch语句

循环结构

  1. goto语句

  1. while循环

  1. do while循环

  1. for循环

  1. continue语句、break语句

数组

一维数组

  1. 先定义的变量放在高地址,后定义的变量在低地址

  1. 编译器并不检查程序对数组下标的引用是否在数组的合法范围,所以,如果下标值是从那些已知是正确的值计算得来,那么就无需检查。如果是从用户输入的数据产生而来的,那么在使用它之前必须进行检查,确保它们位于有效范围内

  1. 传递数组时,实际数组名里存的是数组的首地址,传递的是首地址,无法传递长度

  1. 使用栈空间(Windows为1M)时,不能使用过大数组(25万左右)

二维数组

  1. 传递时,列数一定要写

字符数组

  1. C 语言规定字符串结束标志为’\0’,而系统对字符串常量自动加一个’\0’,为了保证处理方法一致,我们会人为的在字符数组添加’\0’,所以字符数组存储的字符串长度必须比字符数组小一个字节,比如,例如 char c[10]最长存储 9 个字符,剩余 1 个字符用来存储’\0’

  1. gets、puts输入输出字符串

  1. gets的%s模式是不安全的,因为没有传递长度,可以用char *fgets(char *str, int num, FILE *stream),长度不超过num-1,多余内容保留在缓冲区

  1. 字符串操作函数

#include<string.h>

size_t strlen(char *str); //统计字符串长度
char *strcpy(char *to, const char *from); //将字符串复制到另一个字符串中,目标数组一定要大于复制的
int strcmp(const char *str1, const char *str2); //比较两个字符串大小
char *strcat(char *str1, const char *str2); //将两个字符串连接到一起,目标数组大于连接后的字符串大小

char *strncpy(char *to, const char *from, size_t count); //将字符串 from 中至多 count 个字符复制到字符串 to 中。如果字符串 from 的长度小于 count,其余部分用'\0'填补
int strncmp(const char *str1, const char *str2, size_t count); //比较字符串 str1 和 str2 中至多 count 个字符,如果参数中任一字符串长度小于 count, 那么当比较到第一个空值结束符时,就结束处理
char *strncat(char *str1, const char *str2, size_t count); //将字符串 from 中至多 count 个字符连接到字符串 to 中
  1. mem系列函数,可以对任何数组使用

void *memset(void *buffer, int ch, size_t count); //函数拷贝 ch 到 buffer 从头开始的 count 个字符里
void *memcpy(void *to, const void *from, size_t count); //函数从 from 中复制 count 个字符到 to 中,并返回 to 指针。to和from不能重叠
void *memmove(void *to, const void *from, size_t count); //与 mencpy 相同,to 和 from 可以重叠
int memcmp(const void *buffer1, const void *buffer2, size_t count); //比较 buffer1 和 buffer2 的前 count 个字符
  1. sprintf将不同类型数据变为一个字符串

sscanf将字符串格式化为不同的数据类型并放入对应变量中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值