C语言:数组、字符串知识点整理:

这篇具有很好参考价值的文章主要介绍了C语言:数组、字符串知识点整理:。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数组:(长度的计算)

补充:数组长度=sizeof(arr)/sizeof(arr[0])

注意:!!!不适用于当arr 充当形参时(函数传参)!!!

因为函数传递的是int arr[0] 的地址(指针),而不是数组内容

若在此情况计算整形数组长度

        在X86系统下,指针大小为4,所以计算结果为4/4=1;

        在X64系统下,指针大小为8,所以计算结果为8/4=2;

函数内以此公式计算数组的长度均为错误答案,所以数组在传参时,应增加计算的数组长度值;

指针引用数组:

一维数组名表示整个数组:

在同一个函数定义的数组下 !!!

  1. sizeof(arr):表示数组的全部字节数
  2. &arr +1 : 表示数组本身加整个数组占字节数的地址

数组:int arr[10];

  1. &arr[0],表示下标为零的该数组地址
  2. [ ]内数字表示数组的偏移量
  3. 而任意 arr[] 仅代表数组的数值
  4. 数组名表示整个数组,表示地址

以下是几种指针和数组之间相互转换:文章来源地址https://www.toymoban.com/news/detail-837988.html

  • int *p=&arr[0] 将数组的起始地址赋给指针p
  • p++ == arr[i++];
  • (*p+i) == arr[0+i];
  • (*p+i) == p[i];
  • *(arr+3) == arr[0+3];
  • arr[i] == p[i];
  • [arr]i == [p]i;
  1. 当指针被赋值数组的地址时,如果数组赋值时的下标不为0,则指针可以转换成数组的形式,且:下标可为负数,此情形在数组中不存在
  2. 当一个参数需要调用函数来修改值时:传指针解引用但是数组 arr[i] 下标自带解引用-> *(arr+i)= arr[i];所以数组在函数传参时无返回值也能修改值的变化

字符串常用函数

  • strcpy:字符串拷贝(复制)
  • strlen:字符长度,不包括'\0'
  • strcat:字符串连接
  • strcmp:字符串比较
  • strstr:字符串查找
  • sprintf:把数据输出到指定的字符数组 .非常常用
    • :printf("%d",a)
    • ->sprintf(char buff[10],"%d",a);
    • 把数据a作为字符输入字符串,
    • 凡是可以输出到屏幕上的数据,都可以通过sprintf()输入到字符串等其他保存,
  • gets:被废除,不允许使用,不安全
  • 不安全:数组越界
  • fgets(),从键盘获取指定数量的内容,保存到指定地址

到了这里,关于C语言:数组、字符串知识点整理:的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言——详解字符函数和字符串数组(上)

    目录 一、strlen的使用和模拟实现 1.strlen()函数的介绍 2.strlen()函数的具体使用 3.strlen函数的注意事项 4.strlen函数的模拟实现 二、strcpy的使用和模拟实现 1.strcpy()函数的介绍 2.strcpy()函数的具体使用 3.strcpy()函数的注意事项 4.strcpy函数的模拟实现 三、strcat 的使用和模拟实现  1

    2024年01月16日
    浏览(38)
  • C语言字符串初始化详解:用常量字符串进行字符数组初始化

    简介 字符串初始化 用常量字符串 初始化过程 示范代码 结论 在C语言中,字符串被定义为字符数组。字符串的初始化是指将一个常量字符串复制到字符数组中。本文将详细介绍字符串的初始化方法,并提供相应的示范代码。 在C语言中,有几种常用的方法可以用常量字符串来

    2024年02月15日
    浏览(36)
  • C语言基础——数组与字符串

    数组 – 类型 – 构造类型 数组是相同类型数据的集合。 类型 [数组长度];//类型 [] char [] int [] float [] double [] 类型:4大基本类型 – char int float double 数组 指针 结构体 [] – 一定不可以省略 数组长度 – 定义变量时,告诉编译器,该数组要开辟多大空间。 类型 标识符=初始化

    2023年04月12日
    浏览(32)
  • 用c语言如何用二维数组存入多个字符串

    用 c 语言如何用二维数组存储多个字符串呢? 首先,需要确定要存储的字符串的个数和每个字符串的长度。然后定义一个二维数组,其中第一维表示字符串的个数,第二维表示每个字符串的长度。 例如,假设要存储 3 个字符串,每个字符串的长度都是 10,则可以使用如下代

    2024年02月05日
    浏览(32)
  • 用C语言编程实现两个字符串数组的连接

    写一函数,将两个字符串连接。不要使用 strcat 函数。 说明: (1)连接两个字符串的函数名为:Connect; (2)将连个字符串存入两个字符串数组中,要保证第一个字符串的长度能够容纳两个字符串之和; (3)连接两个字符串主要是找到第一个字符串的结尾,然后将第二个字

    2024年02月12日
    浏览(33)
  • 【C语言基础考研向】10 字符数组初始化及传递和scanf 读取字符串

    字符数组的定义方法与前面介绍的一维数组类似.例如, 字符数组的初始化可以采用以下方式. (1)对每个字符单独赋值进行初始化.例如, (2)对整个数组进行初始化.例如, 但工作中一般不用以上两种初始化方式,因为字符数组一般用来存取字符串.通常采用的初始化方式是

    2024年01月25日
    浏览(45)
  • 厦大2021届大一小学期C语言作业1 数组+字符串+指针+位操作

    题目描述: 1.程序要求:实现对5个数(a[0]~a[4],数组元素从键盘读入)进行从大到小起泡法排序。输入第一组数据:1 2 3 4 5;输入第二组数据:3 5 4 1 2;验证程序的正确性。 题目描述: 2.程序要求:实现三阶方阵转置,并打印转置后的方阵。 测试主函数为: int main() { in

    2024年02月15日
    浏览(32)
  • 柔性数组知识点

    什么是柔性数组?柔性数组其实也是动态内存管理部分的内容。这节主要来复习柔性数组的知识点。  当结构体的最后一个成员为数组, 且这个数组的大小未确定时, 我们就称它是柔性数组。 如: struct stu {         char name[20];         int age;         char adress[]; } 这里的

    2024年02月22日
    浏览(36)
  • 数组的知识点

    数组是存放在 连续空间 上的 相同类型 的数据集合。 特点: 1、数组下标都是从0开始的; 2、数组内存空间的地址是连续的。 C++,要注意vector和array的区别,vector的底层实现是array,严格来讲vector是容器,不是数组。 C++中二位数组在地址空间是连续的。测试代码: 特点 :前提

    2023年04月22日
    浏览(34)
  • mysql 解析json字符串、数组字符串、json数组字符串

    笔者使用mysql 5.7进行了一次json字符串的解析,因为一直在搞大数据相关的数据库、olap等,太久没有用mysql5.x的版本,一些函数已经不知道支不支持,我的同事建议我使用like、rlike模糊匹配的方式,身为数据人我不太喜欢用这种手段,因为他们比较低效。于是我想这里总结一下

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包