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

数组:(长度的计算)

补充 :数组长度=sizeof(arr)/sizeof(arr0)

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

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

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

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

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

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

指针引用数组:

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

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

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

数组:int arr10;

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

以下是几种指针和数组之间相互转换:

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

字符串常用函数

  • strcpy:字符串拷贝(复制)
  • strlen:字符长度,不包括'\0'
  • strcat:字符串连接
  • strcmp:字符串比较
  • strstr:字符串查找
  • sprintf:把数据输出到指定的字符数组 .非常常用
    • :printf("%d",a)
    • ->sprintf(char buff10,"%d",a);
    • 把数据a作为字符输入字符串,
    • 凡是可以输出到屏幕上的数据,都可以通过sprintf()输入到字符串等其他保存,
  • gets:被废除,不允许使用,不安全
  • 不安全:数组越界
  • fgets(),从键盘获取指定数量的内容,保存到指定地址
相关推荐
阿里嘎多学长2 分钟前
2026-10-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
布吉岛的石头38 分钟前
Java 程序员第 50 阶段2:预训练的目标函数:自回归语言建模本质
java·开发语言·人工智能·深度学习·回归·transformer
小羊没烦恼!1 小时前
铁道部新客票系统设计(二)
开发语言·前端·数据库·python·oracle·c#·php
quantdash_cc2 小时前
从实时行情到价格观察表:用 Python 和 Pandas 构建策略输入数据
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
昂好的day3 小时前
VisionMaster 通信模块实战(上):Modbus、TCP 收发、协议组装解析
开发语言·网络·网络协议·tcp/ip·c#
努力实干4 小时前
面向对象设计原则——C++
开发语言·c++·数码相机
NetX行者5 小时前
四语言 Hello World 背后:编译模型与运行时对比
开发语言
Pin_Qing6 小时前
账单没超,请求先被拒了
大数据·开发语言·人工智能
2601_962885726 小时前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
郝亚军6 小时前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构