数组:(长度的计算)
补充:数组长度=sizeof(arr)/sizeof(arr[0])
注意:!!!不适用于当arr 充当形参时(函数传参)!!!
因为函数传递的是int arr[0] 的地址(指针),而不是数组内容,
若在此情况计算整形数组长度
在X86系统下,指针大小为4,所以计算结果为4/4=1;
在X64系统下,指针大小为8,所以计算结果为8/4=2;
函数内以此公式计算数组的长度均为错误答案,所以数组在传参时,应增加计算的数组长度值;
指针引用数组:
一维数组名表示整个数组:
在同一个函数定义的数组下 !!!文章来源:https://www.toymoban.com/news/detail-837988.html
- sizeof(arr):表示数组的全部字节数
- &arr +1 : 表示数组本身加整个数组占字节数的地址
数组:int arr[10];
- &arr[0],表示下标为零的该数组地址
- [ ]内数字表示数组的偏移量
- 而任意 arr[] 仅代表数组的数值
- 数组名表示整个数组,表示地址
以下是几种指针和数组之间相互转换:文章来源地址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;
- 当指针被赋值数组的地址时,如果数组赋值时的下标不为0,则指针可以转换成数组的形式,且:下标可为负数,此情形在数组中不存在
- 当一个参数需要调用函数来修改值时:传指针解引用但是数组 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模板网!