当前位置:首页 > 内存 > 正文

c语言字符串内存字节数

  • 内存
  • 2024-06-11 14:50:45
  • 8127

一、C语言中,比如一个字符串长度是10,如果存储长度不足10那么在右边补充空格,而且存储内容不定长Chara[]={1,2,3,4};
printf("%-10s",a);//%10表示以10的宽度输出,如果小于10位数字,填空。“-”表示字符将字符串左对齐
//也可以尝试printf("%10s",a);


二、C语言字符串越界问题。我申请10个字符空间,用scanf输入了15个字符,怎么没崩溃呢?你定义的是一个指针,而不是一个数组。尽管指针和数组看起来使用方式相同,但实际上它们有很大不同。数组的变量存储空间是在确定的时候分配的,而指针则一直在读写,所以只要后面有读写,就会继续读取。这样理解的话,多余的也一定会占用存储空间。如果里面的数据被异常调用,这个存储空间可能不会被使用或者被使用。此外,当您重新扩展数组的范围时,可能会出现异常。
你会看到:char*str1;sizeof(str1)的值始终为4且charstr1[10];sizeof(str1)的值始终为10,这就是原因。