我是靠谱客的博主 高高小虾米,这篇文章主要介绍[C]变长数组,现在分享给大家,希望可以做个参考。

变长数组在C99及C11的标准中支持,严格讲在C++的所有标准中都不支持变长数组,只是各家编译器对语言的扩展

//t.c
#include<stdio.h>

int foo(int n){
	int x[n];
	printf("%lun",sizeof(x));
	return n;
}

int main()
{
	foo(10);
	foo(20);
	return 0;
}

严格按照C99标准编译: clang t.c -o t -std=c99 -pedantic,输出正常

严格按照C11标准编译: clang t.c -o t -std=c11 -pedantic,输出正常

严格按照C89标准编译: clang t.c -o t -std=c99 -pedantic,提示如下的警告信息:

t.c:4:7: warning: variable length arrays are a C99 feature [-Wvla-extension]
        int x[n];
             ^
1 warning generated.

//t.cpp
#include<stdio.h>

int foo(int n){
	int x[n];
	printf("%lun",sizeof(x));
	return n;
}

int main()
{
	foo(10);
	foo(20);
	return 0;
}

严格按照C++98标准:clang t.cpp -o t -std=c++98 -pedantic,提示警告信息如下:

t.cpp:4:7: warning: variable length arrays are a C99 feature [-Wvla-extension]
        int x[n];
             ^
1 warning generated.

严格按照C++11标准:clang t.cpp -o t -std=c++11 -pedantic,提示警告信息如下:

t.cpp:4:7: warning: variable length arrays are a C99 feature [-Wvla-extension]
        int x[n];
             ^
1 warning generated.

 

 

最后

以上就是高高小虾米最近收集整理的关于[C]变长数组的全部内容,更多相关[C]变长数组内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(136)

评论列表共有 0 条评论

立即
投稿
返回
顶部