如何获取二维数组的长度
如何获取二维数组的长度 $ cat main.c#include <stdio.h>
int d0;
void func(int x0) {
printf("x0: %lu\n", sizeof(x0));
}
int main(void) {
int d1 = {0};
printf("d0: %lu\n", sizeof(d0));
printf("d1: %lu\n", sizeof(d1));
func(d1);
return 0;
}
$ gcc-debug -o main main.c
main.c: In function ‘func’:
main.c:6:31: warning: ‘sizeof’ on array function parameter ‘x0’ will return size of ‘int (*)’ [-Wsizeof-array-argument]
6 | printf("x0: %lu\n", sizeof(x0));
| ^
main.c:5:15: note: declared here
5 | void func(int x0) {
| ~~~~^~~~~~~~~~
$ ./main
d0: 800
d1: 2400
x0: 8
$ 如果没有作为参数传递过的话,可以用 sizeof
$ cat main.c
#include <stdio.h>
int d0;
void func(int x0) {
printf("x0: %lu\n", sizeof(x0) / sizeof(x0));
}
int main(void) {
int d1 = {0};
printf("d0: %lu\n", sizeof(d0) / sizeof(d0));
printf("d1: %lu\n", sizeof(d1) / sizeof(d1));
func(d1);
return 0;
}
$ gcc-debug -o main main.c
main.c: In function ‘func’:
main.c:6:31: warning: ‘sizeof’ on array function parameter ‘x0’ will return size of ‘int *’ [-Wsizeof-array-argument]
6 | printf("x0: %lu\n", sizeof(x0) / sizeof(x0));
| ^
main.c:5:15: note: declared here
5 | void func(int x0) {
| ~~~~^~~~~~
$ ./main
d0: 10
d1: 20
x0: 2
$ 人造人 发表于 2022-2-5 15:52
不能使用strlen函数吗 摸你穷 发表于 2022-2-5 16:01
不能使用strlen函数吗
strlen 函数是做什么用的?
摸你穷 发表于 2022-2-5 16:01
不能使用strlen函数吗
求数组的长度? 是求字符串的长度吧
字符串的长度可不等于数组的长度
$ cat main.c
#include <stdio.h>
#include <string.h>
int main(void) {
char str = "hello";
printf("%lu\n", strlen(str));
return 0;
}
$ gcc-debug -o main main.c
$ ./main
5
$ 人造人 发表于 2022-2-5 16:05
strlen 函数是做什么用的?
哦哦哦了二位数组输入的是字符串怎么整 摸你穷 发表于 2022-2-5 16:09
哦哦哦了二位数组输入的是字符串怎么整
二维数组输入字符串? $ cat main.c
#include <stdio.h>
#include <string.h>
int main(void) {
char *str = {
"hello",
"word",
"1234abcd",
NULL
};
for(size_t i = 0; str; ++i) {
printf("%.2lu: %s\n", strlen(str), str);
}
return 0;
}
$ gcc-debug -o main main.c
$ ./main
05: hello
04: word
08: 1234abcd
$ 人造人 发表于 2022-2-5 16:10
二维数组输入字符串?
哦 直接strlen(变量名)就可以了懂了懂了 $ cat main.c
#include <stdio.h>
#include <string.h>
int main(void) {
char str = {
"hello",
"word",
"1234abcd",
};
for(size_t i = 0; i < 3; ++i) {
printf("%.2lu: %s\n", strlen(str), str);
}
return 0;
}
$ gcc-debug -o main main.c
$ ./main
05: hello
04: word
08: 1234abcd
$
页:
[1]