a*b/c*a 从左到右计算
对于二维数组,行数可以省略,但列数一定要指定,因为编译器根据列数来进行寻址
int a[2][]={{1,2},{3,4}}; 正确
int a[][2]={1,2,3,4}; 错误
while(条件1 && 条件2 ) 先判断条件1 再判断 条件2
c语言中,比较大的数组尽量定义再main函数外,否则程序可能无法运行
strlen(s)返回的字符串长度不包括了结束符“ \0” sizeof包括了结束符
“abcd”
strlen()是4 sizeof()是5
如果ch是大写字母,则 ch-‘A’是ch在字母表上的序号(A是0,B是1.。。。。)
如果ch是数字,则ch-‘0’是数字的数值本身-------可以作为一种字符char转数值int的方法
使用fgetc(fin)可以从打开的文件fin中读取一个字符,然后返回一个int值当文件结束时返回一个EOF,
从标准输入读取一个字符,可以使用getchar,它等价于fgetc(stdin)
fgets(buf,maxn,fin)读取完整的一行,buf是声明为char buf【maxn】,读取一行后会在末尾加个\0
当一个字符都没有读到时,fgets返回NULL。
char p[100]="hello world";
int k=123;
char s[100];
将int变成字符串的小方法
sprintf(s,"%d",k);
%03d 输出三位宽度的整数, 不足时前补0
%3d 输出三位宽度的整数, 不足时后补空格
%-3d 输出三位宽度的整数, 不足时前补空格
%d 输出整数 未指定宽度,以实际宽度输出
putchar()输出一个字符
编程比赛中总是使用ANSI C,即C89而 不是C99
windows换行 \r\n MAC换行\r linux换行是\n
gets(s)存在缓冲漏洞,在C11标准中,该函数已被删除