A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qq103613 中级黑马   /  2015-7-24 21:54  /  567 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1)字符数组初始化时没有使用 '\0'

先定义的变量存放在内存高地址,后面定义变量放在内存低地址

用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志'\0'。

char ch[] = {'a','b','c','\0'};

char ch2[]= {"abc"};

关于字符串长度,如果在定义的没有规定字符串数组长度,则看元素个数,若规定了,则数组长度则是字符串长度.

//----------------------字符串长度计算方法
以“\0”为字符串结束条件进行统计
1)不知道数组长度的时候,计算字符串的长度


2)已知数组长度,但是不知道数组中实际存放了多少个字符

while实现strlen();

while(ch[i-1] != '\0')

abc\0cde

sizeof计算字符串长度-->char ch[] = "abab/0bbc"以内的所有字符长度  9

注意初始化定义的字符串数组的长度  char[10] = "abc"     10


strlen计算字符串长度-->  \0前的所有字符长度
char[10] = "abc"   3
不包含 \0

1 个回复

倒序浏览
努力  一起加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马