不解...............

来源:百度知道 编辑:UC知道 时间:2024/05/30 02:51:42
#include <stdio.h>
main()
{
static char a[]="Hello,world!"; 1.//char前面加static是为什么?
2.//a后面带[]又是为什么?
printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
} 3.//%s\n是输出字符串,输出结果是Hello,world!那么%15s呢?10.5s呢?
输出结果是
Hello,world!
Hello,world!
Hello
Hello
Hel

int main()
{
static char a[] = "Hello,World!";
printf("%s\n%15s\n%10.5s\n%2.5s\n%.3s\n",a,a,a,a,a);
return 0;
}
/*
1.static表示静态变量,意味着它在程序的整个生存期都存在,也就是说,如果你的程序不结束。它就会在内存里。
2.[]表示这是一个字符数组,char* a = ...,这是一个字符串,大小为字符个数+'\0'
3.
%s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。
%ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。
%-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。
%m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。
%-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。

*/

static是静态变量 这种变量在程序结束的时候才释放内存
a后面的[]表示的是一个字符数组