我正在尝试编写一个程序,类似int char这样的类型通过命令行参数传递,然后androidTestUtil 'com.android.support.test:orchestrator:1.0.1'
用于打印字节
我编写了部分代码,如果有人可以在sizeof
如果我写sizeof
这是一个问题,因为它是一个字符串而不是一个类型
argv[loop]
答案 0 :(得分:7)
sizeof
无法帮助您。因为你只会得到sizeof(char*)
而不是别的。
好吧,所有人都得到char*
数组,所以每个人都会char*
,唉,你无法知道它是int
还是float
直接{1}}因为你得到的只是每个参数的空终止char
数组。
如果您想知道每个参数字符串的长度,请使用strlen()
。
嘿,如果您需要存储获取该信息,我可以告诉您一个方案
./a.out -f 1.32 -i 123 -s "ok"
现在你知道-f
意味着你会期待float
。相应地解析它并且开心。你必须设计这样的程序。
如果你的意图是
./a.out int char
然后你会打印sizeof
int
和char
,然后就没办法了。
sizeof运算符产生其操作数的大小(以字节为单位), 可以是表达式或类型的括号名称。大小是 根据操作数的类型确定。结果是整数。如果 操作数的类型是可变长度数组类型,操作数 被评估;否则,不评估操作数和结果 是一个整数常量。
在这里,如果我们传递空终止字符串(" int"," float"到sizeof
),那么它们都不是。所以这不会起作用。