吾爱程序员:这里有好玩的游戏和软件
当前位置:首页C语言教程 → char数组的单引号和双引号声明有什么区别?

char数组的单引号和双引号声明有什么区别?

来源:网络 | 更新时间:2022-01-12 21:50:08
在 C/C++ 中,当使用双引号字符串初始化字符数组且未指定数组大小时,编译器会自动为字符串终止符 '' 分配一个额外的空间。例如,下面的程序打印 6 作为输出。
#include<stdio.h>
int main()
{
// size of arr[] is 6 as it is '' terminated 
char arr[] = "geeks";

printf("%lu", sizeof(arr));

return 0;
}
输出 :
6
如果在上述程序中将数组大小指定为 5,则程序在没有任何警告/错误的情况下运行,并在 C 中打印 5,但在 C++ 中会导致编译错误。
// Works in C, but compilation error in C++
#include<stdio.h>
int main()
{
// arr[] is not terminated with ''
// and its size is 5
char arr[5] = "geeks"; 

printf("%lu", sizeof(arr));

return 0;
}
输出 :
5
当使用逗号分隔的字符列表初始化字符数组并且未指定数组大小时,编译器不会为字符串终止符“”创建额外的空间。例如,下面的程序打印 5。
#include<stdio.h>
int main()
{
// arr[] is not terminated with '' 
// and its size is 5 
char arr[]= {'g', 'e', 'e', 'k', 's'}; 

printf("%lu", sizeof(arr));

return 0;
}
输出 :
5

最新文章

热点资讯

手游排行榜

CopyRight 2020-2030吾爱程序员

鄂ICP备2021004581号-8

本站资源收集于网络,如有侵权请联系我们:35492删除0109@qq.com