📅  最后修改于: 2020-10-23 05:37:28             🧑  作者: Mango
#include
#include
int main()
{
int j, k;
char *z="Hello ";
k = strlen(z);
*z = z[k];
for(j=0; j<=k; j++)
{
printf("%s ", z);
z++;
}
printf("\n", z);
return 0;
}
正确的选项是(c)。
说明:
由于C语言是机器相关的语言。因此,它将在其他平台上提供不同的输出(取决于机器和编译器)。
如果我们使用Turbo C在Windows平台上执行和编译该程序,则它将给出输出“ ello llo lo o”。
如果我们使用GCC编译器在Linux平台上执行和编译该程序,则它将给出输出“ Hello ello llo lo o”。
正确的选项是(c)。
说明:
在Linux和Windows下,每个指针的长度为4个字节。
在DOS下,near,far和huge指针的值是:
#include
int main()
{
int *i;
void fun(int**);
fun(&i);
return 0;
}
void fun(int **j)
{
int b=10;
/* Statement is add here */
}
正确的选项是(c)。
说明:
在普通的指针分配中,当函数(fun())时,它将作为(j)接收,因此对j执行的任何操作都将在main的i处返回。
函数调用后,
因此,当我们使用语句* j =&b时,(b)的地址将存储在(i)中。
#include
int main()
{
float j=12, *i;
void *a;
a=&j;
i=a;
printf("%f\n", *i);
return 0;
}
正确的选项是(b)。
说明:
在Linux下的GCC和DOS下的Turbo C中编译程序时没有错误。
该程序的输出为12.000000。
正确的选项是(b)。
说明:
不,三个声明char ** ball,char * ball []和char ball [] []是不同的。
char ** ball-是双指针
char * ball []-它是一个指针数组
char ball [] []-它是二维数组。