From c8b3ba335c52682891021c8b636a15e27e36b50e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=A4=A7=E4=BB=99?= <1900919313@qq.com> Date: Tue, 8 Oct 2024 16:40:42 +0800 Subject: [PATCH] c --- docs/notes/02_c-leap/05_xdx/index.md | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/docs/notes/02_c-leap/05_xdx/index.md b/docs/notes/02_c-leap/05_xdx/index.md index 43d540d..8fc3284 100644 --- a/docs/notes/02_c-leap/05_xdx/index.md +++ b/docs/notes/02_c-leap/05_xdx/index.md @@ -2069,3 +2069,72 @@ int main() { ``` +#### 3.2.2.4 常量参数 + +* 在C语言中,单独定义 const 变量没有明显的优势,完全可以使用`#define`命令代替。 + +> [!NOTE] +> +> const 通常用在函数形参中,如果形参是一个指针,为了防止在函数内部修改指针指向的数据,就可以用 const 来限制。 + +* 在 C 语言标准库中,有很多函数的形参都被 const 限制了,下面是部分函数的原型: + +```c +size_t strlen ( const char * str ); +``` + +```c +int strcmp ( const char * str1, const char * str2 ); +``` + +```c +char * strcat ( char * destination, const char * source ); +``` + +```c +char * strcpy ( char * destination, const char * source ); +``` + +```c +int system (const char* command); +``` + +```c +int puts ( const char * str ); +``` + +```c +int printf ( const char * format, ... ); +``` + + + +* 示例: + +```c {6} +#include + +/** +* 查找字符串中某个字符出现的次数 +*/ +size_t strnchr(const char *str, char ch){ + int i, n = 0, len = strlen(str); + + for(i=0; i