小编Fre*_*red的帖子

sizeof数组澄清

我正在C学习明天的最后一个,并对sizeof运算符有疑问.

假设a的大小int32位,而指针是64位.

如果有功能:

int
foo (int zap[])
{
    int a = sizeof(zap);
    return a;
}
Run Code Online (Sandbox Code Playgroud)

因为zap是一个指针,foo会返回8,因为这是存储这个特定指针所需的字节数.但是,使用以下代码:

int zip[] = { 0, 1, 2, 3, 4, 5 };
int i = sizeof(zip);
Run Code Online (Sandbox Code Playgroud)

i将是6 * sizeof(int)= 6 * 4=24

为什么它sizeof(zip)返回元素的数量乘以每个元素sizeof(zap)的大小,而返回指针的大小?它的大小zap是未指定的,zip不是吗?编译器知道zip6元素,但没有关于zap可能有多大的线索.

c

8
推荐指数
1
解决办法
469
查看次数

KornShell布尔条件逻辑

我对我写的这个KornShell(ksh)脚本有些困惑,主要是用布尔和条件语.

所以我的脚本的第一部分,我catmewcme两个设置为truefalse.这部分工作正常,因为我已经尝试过echo它们并产生了预期的结果.后来,我有这个代码:

if [[ $catme ]] ; then
    some commands
fi
Run Code Online (Sandbox Code Playgroud)

我再说一遍wcme.但是,出乎意料的是,无论是什么wcme,catme我的if语句中的命令都会被执行.

这是语法错误吗?我尝试过,[[ $catme -eq true ]]但似乎也没有用.有人能指出我正确的方向吗?

unix shell scripting ksh

3
推荐指数
1
解决办法
9670
查看次数

标签 统计

c ×1

ksh ×1

scripting ×1

shell ×1

unix ×1