7.1 字符串

字符串的定义:

①和整型一样:int data = [1,2,3,4,5];

②和整型数组一样:char str[ ]={'h','e','l','l','o'};

③改进:char str[ ]="hello";

④一般用char *p = "hello"

        ③和④的区别:③是字符串变量,数组中的元素是可以修改的;④是字符串常量,不允许被修改。注意指针的操作,对于普通的字符串常量可以定义一个指针,指向字符串常量的地址空间,野指针没有明确的内存指向,可能会影响到其他内存空间的问题,进行操作时会出现问题。

字符串的存储方式: 

        当我们使用字符串数组时,发现输出字符数组大小时,与实际的字符串大小不一致,例如当我们定义一个字符串长度为5的数组时,整型为5,字符串型为6,这是因为字符串结束的标准为\0,如果字符数组定义时用的是字符串形式,会自动加上\0。

#include <stdio.h>
int main(){
	int data[] = {1,2,3,4,5};
	char cdata[] = "hello";  //结束标志为\0
	
	int len = sizeof(data)/sizeof(data[0]);
	printf("len = %d\n",len);
	
	len = sizeof(cdata)/sizeof(cdata[0]);
	printf("len = %d\n",len);
	return 0;
}

   输出结果:

len = 5
len = 6

sizeof和strlen的区别:

     字符串数组与整型数组类似,当数组足够大,并且有元素没有赋值,会自动的将未赋值的数据初始化为“\0”。

        sizeof的作用是计算数组中所有的元素;strlen计算的是有效的字符长度。

char型1个字节、指针为8个字节……

#include <stdio.h>
int main(){
	char cdata[128] = "hello";
	
	printf("sizeof:%d\n",sizeof(cdata));
	printf("strlen:%d\n"strlen(cdata));
	
	return 0;
}

结果:

sizeof:128
strlen:5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值