已知 char a[][20]={"Beijing","shanghai","tianjin","chongqing"};语句printf("%c",a[30]);的输出是
3个回答
展开全部
char a[][20]={"Beijing","shanghai","tianjin","chongqing"};
定义a是一个二维字符数组。并初始化了4个字符串,
a[0]是beijing,。。。a[3]是chongqing。
但C语言本身并不检测数组越界。
所以a[30]尽管不是定义中存在的,但也不报错。
a[0]是beijing,a[0]本身是字符串bejing的地址,如果%s输出a[0]就会看到beijing。如果%c输出beijing的意思是,bejing这个字符串的地址以字符形式输出。这个地址在编译的时候确定,但不同的机器某此的编译地址都会不一。所以%c输出的a[0]的内容是不固定的。
同理,a[30]
定义a是一个二维字符数组。并初始化了4个字符串,
a[0]是beijing,。。。a[3]是chongqing。
但C语言本身并不检测数组越界。
所以a[30]尽管不是定义中存在的,但也不报错。
a[0]是beijing,a[0]本身是字符串bejing的地址,如果%s输出a[0]就会看到beijing。如果%c输出beijing的意思是,bejing这个字符串的地址以字符形式输出。这个地址在编译的时候确定,但不同的机器某此的编译地址都会不一。所以%c输出的a[0]的内容是不固定的。
同理,a[30]
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询