C语言中关于字符串、指针阅读方法的总结

该博客围绕C语言进行总结,旨在形成知识体系。总结板块包括数据类型、指针与数组等。强调围绕常用应用知识,突出重点。介绍了字符串在C语言中的特性,如用字符数组模拟、字符串字面量本质等,还讲解了指针阅读的右左法则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言中关于字符串、指针阅读方法的总结

知识点

字符串
指针阅读方法

敲黑板先看这里

你觉不觉得C语言基础知识概念在头脑里没有形成知识体系?是否比较模糊比较乱?这就对了?我之前也是,有些知识点时间长了容易忘或者混淆,有些初学者抓不住重点觉得C语言复杂,难!实不相瞒,我也是这样的感受,于是我想是时候整体的把C语言给好好的总结一下了,这样形成一个知识体系,就不容易忘,也不容易混淆,这就是这次总结的意义所在。
分为几个板块总结:数据类型、指针与数组、字符串、多维指针与多维数组、函数、内存分配与操作问题、符号总结、控制语句、以及编译方面的问题。
总结宗旨:绝不专牛角尖!主要围绕常用应用知识为主,突出重点,能够很好的形成知识架构。比如:总结了float一般就不会再总结double,这样做没有多大意义,相反的,把重要的拿出来好好分析一下,是很有意义的,而相似的东西就可以举一反三了。实际上就这些知识点,概念搞明白后,C语言就通透多了

注意:

如果指针没有搞清楚,请先看我的关于指针与数组的总结那篇,
字符串与指针和数组有着非常好的关系,一定要理清楚这三者的关系。

字符串

1.字符串是有序字符的集合,是程序中的基本元素之一,C语言中没有字符串的概念:
C语言中通过特殊的字符数组模拟字符串----以’\0’结尾的字符数组模拟字符串。

2.在C语言中,双引号引用的单个或多个字符是一种特殊的字面量:
它的本质为字符数组,编译器自动在结尾加上’\0’字符,存储于程序的全局只读存储区。

3.字符串字面量的本质是一个数组,可以看作常量指针,字面量中的字符不可改变,里面至少包含一个字符:

   char ca[] = {'H', 'e', 'l', 'l', 'o'};  //字符数组,不是字符串
   char sa[] = {'w', 'o', 'r', 'l', 'd', '\0'};  //以'\0'结尾的字符数组,是字符串
   char ss[] = "Hello world!";   //双引号引用字面量,本质为字符数组,自动加'\0',是字符串
   char* str = "Hello world!";  //字符串字面量,可以看作常量指针。
   
   "Hello world!"是一个无名的字符数组。

4.字符串长度是通过’\0’结束符来确定,用函数strlen来返回(字符串相关函数都依赖于结束符’\0’) ,长度指的是第一个’\0’字符前出现的个数;字符串长度就是字符串所包含字符的个数。

5.字符串、字符数组、字符指针三者看似相同,而本质不同。字符串之间的相等比较需要 用strcmp完成。不可直接用==进行比较。

指针阅读方法

—右左法则:
从最里层的圆括号中未定义的标示符看起,(首先往右看,再往左看,遇到圆括号或方括号时可确定部分类型,并调转方向),重复括号内的步骤,直到阅读结束。

左右法则总结于编译器对指针变量的解析过程,指针阅读练习的意义在于理解指针的组合定义,可通过typedef简化复杂指针的定义。
例:

int (*p1)(int* , int (*f)(int*)); 
//p1是一个函数指针,指向的函数的返回值为int  指向的函数的参数有两个,
一个参数为 int*类型, 另一个参数是名字为f的函数指针( f指向的函数返回值为int,
参数只有一个为int*);

int (*p2[5])(int*);
//p2是包含5个元素的指针数组,每个元素是函数指针(指向的函数参数为int*,返回值为int)。

int (*(*p3)[5])(int*);
// p3是指向有5个元素的数组的指针,数组的每个元素是函数指针(参数为int*,返回值为int);

int* (*(*p4)(int*))(int*);
//p4是函数指针,指向的函数参数为int*,返回值为函数指针(指向的函数参数为int*,返回值为int*)。

int (*(*p5)(int*))[5];
// p5是函数指针,指向的函数参数是int*,返回值是数组指针(指向一个 有5个int类型元素的数组)。

指针阅读小结:
指针阅读一两次可能没有什么感觉,甚至不会读,这个没有关系,如果出现这种情况,请暂停下来过几天再来看,多重复几次,看着就自然而然的会了,我也是这样的情况。关键在于不会读的时候千万不可放弃,也不要怕,抗过几次下来,你就赢了。

总结

以上总结以C语言知识框架为主线,着重强调实际经常应用!反复浏览体会可牢记,形成自己的知识框架,然后灵活应用,知识点来源于狄泰软件学习总结所得。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值