字符串的存储方式

1.整型数组的存储方式

int  a[3]={11,22,33};

为连续的空间,整个数组的大小是(数组个数 乘以 元素类型大小)

2.计算数组的大小,并算出数组的元素的大小及数组元素的个数

#include <stdio.h>
#include <stdlib.h>
int main()
{
     int  a[3]={1,2,3};
     
     printf("a数组的大小是: %d\n",sizeof(a));
     printf("数组的元素大小是: %d\n",sizeof(a[0]));//数组占入空间的大小
     printf("数组的元素大小是: %d\n",sizeof(int));//数组占入空间的大小  
     printf("数组元素的个数是:%d\n",sizeof(a)/sizeof(a[0]));
	 system("pause");
	 return 0;
}

运行结果:
在这里插入图片描述
3.字符串的存储方式
(1)第一种

#include <stdio.h>
#include <stdlib.h>
int main()
{
     
     char  a2[3]={'a','b','c'};
 
     printf("a2数组的大小是: %d\n",sizeof(a2));
     printf("数组的元素大小是: %d\n",sizeof(a2[0]));//数组占入空间的大小
     printf("数组的元素大小是: %d\n",sizeof(char));//数组占入空间的大小  
     printf("数组元素的个数是:%d\n",sizeof(a2)/sizeof(a2[0]));
	 system("pause");
	 return 0;
}

运行结果:
在这里插入图片描述
(2)第二种

#include <stdio.h>
#include <stdlib.h>
int main()
{
    
      char  a3[3]="abc";
 
     printf("a3数组的大小是: %d\n",sizeof(a3));
     printf("数组的元素大小是: %d\n",sizeof(a3[0]));//数组占入空间的大小
     printf("数组的元素大小是: %d\n",sizeof(char));//数组占入空间的大小  
     printf("数组元素的个数是:%d\n",sizeof(a3)/sizeof(a3[0]));
	 
     system("pause");
	 return 0;
}

运行结果:
在这里插入图片描述
(3)第三种

#include <stdio.h>
#include <stdlib.h>
int main()
{
     char  a4[]="abc";
 
     printf("a4数组的大小是: %d\n",sizeof(a4));
     printf("数组的元素大小是: %d\n",sizeof(a4[0]));//数组占入空间的大小
     printf("数组的元素大小是: %d\n",sizeof(char));//数组占入空间的大小  
     printf("数组元素的个数是:%d\n",sizeof(a4)/sizeof(a4[0]));
     
     system("pause");
	 return 0;
}

运行结果:
在这里插入图片描述
在这里,数组大小不写,数组大小会根据初始化的时候元素个数来确定
为什么输出的结果个数是4,因为多个一个字符,‘\0’。代表字符串的结束标志。

4.字符串的末尾是\0,如何系统检测不到\0就打印字符

#include <stdio.h>
#include <stdlib.h>
int main()
{
      char  a4[]="abc";
      int i=0;
   
      while(a4[i]!='\0')
      {
           printf("%c",a4[i]);
           i++;      
      }    
     
     putchar('\n');
     system("pause");
	 return 0;
}

运行结果
在这里插入图片描述

知识点总结:
字符串在内存中,除了有效字符abc以外,还会在字符串的末尾补充\0,作为字符串的结束标志
真正计算有效字符串的长度,用strlen(在下一章补充)。

——@上官可编程

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值