C语言——数组的一些规则

给字符数组赋初值时赋字符串:

对于一个数组char b[6]={'a','b','c','d'};

sizeof(b)=6

strlen(b)=4

可见,sizeof是对数组的空间测量大小,所定义的a为多少,sizeof即为多少。

而strlen可以测量字符数组的字符串个数,但定义的元素个数一定得多于所赋值的字符串个数。

如a[4]={'a','b','c','d'}

这里的sizeof仍然为4,但strlen为随机值。

a[ ]={'a','b','c','d'}

此时,因为字符串后面没有\0的位置,所以strlen(a)便是一个随机值,虽然a中存放了字符串,但并不能把它当做字符串使用。

在赋初值时直接赋字符串常量:

a[10]="string!"

这里的string!是字符串常量,系统已自动加上\0,即使是a[ ]="string!",这里仍然可行,因为末尾有\0。但若是a[7]="string!",则字符串的字符个数超出所开辟的存储单元。

通过指针给字符串赋值:

char x[10],*p="abskk";int i,j;

scanf("%s",x);

for(i=0;i<10;i++)

x[i]=*p++;//++的优先级大于*

输出的值是指针的值,则说明可以把指针的字符串赋给该数组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值