一:定义一个char类型变量的时候,如果没有初始化为常量,默认值为空字符,对应ASCII为0,所占内存为1个字节
二:定义一个int类型变量的时候,如果没有初始化为常量,默认值为 0,所占内存为4个字节
三:定义一个数组类型变量的时候,如果没有初始化,每个元素的值都是随机的,所占内存为单个类型所占字节*数组长度
1、声明时,使用 {0} 初始化;
2、使用memset;
3、用for循环赋值。
四:执行以下代码:
#include <stdio.h>
int main(void){
int s;//定义int变量
char xkl;
printf("给int变量S赋值:\n");
scanf("%d",&s);
printf("给char变量x赋值:");
scanf("%c",&xkl);
printf("S=%d,X=%c\n",s,xkl);
return 0;
}
你会发现结果是scanf("%c",&xkl)还没让我输入就直接跳过拉?然后萌新就很蒙?我擦!怎么肥事.
其实你将printf换一种写法就会明白:
printf("S=%d,X=%d\n",s,xkl);
你会发现打印出来的X=10,对照ASCII是换行符,这就明白拉,原来在第一个scanf键入int的时候,末尾还有一个换行符,
所以第二个scanf读取字符的时候就直接读取末尾的换行符拉。