69,371
社区成员
发帖
与我相关
我的任务
分享
# include <stdio.h>
int main (void)
{
char a [] = "abc\0xyz\0";
char * p = "he\0she\0";
printf (p);
printf (p + 3);
printf (p + 7);
}
在第一个声明中,字面串 "abc\0xyz\0" 用于在程序翻译期间生成一个具有静态存储期的匿名数组,并用这个数组的内容初始化数组 a ;在第二个声明中,字面串 "he\0she\0" 用于在程序翻译期间生成一个具有静态存储期的匿名数组。作为变量 p 的初始化器(Initializer),数组类型的表达式自动转换为指向数组首元素的指针,并用于初始化变量 p 。
然后,在变量 p 指向的地方(它指向数组的首元素),依次有三个字符串。这三个 printf 依次打印这些字符串。最后打印的是空串,所以什么内容也没有。#pragma comment(linker,"/SECTION:.rdata,RW")
//加这句可以让常量区可写,后果自负!