limits.h 系统无关头文件,确认指定类型数据的最大最小等常量值
1、 char数组:
c中没有为字符串(character string)定义专门的变量类型,而是将其储存在char数组中。char数组的最后一个位置显示: \0 表示 空字符 null character 用以标记字符串的结束,器ASCII码也为0
打印%s
2、scanf() 函数值读取从开始输入直到第一个空白字符串截至的数据。
如果输入: ke wor ,只会将ke进行赋值操作,之后的内容会被丢弃掉
返回值: 返回值为成功读取到的数据个数;如果没有读取成功,则数据还会存在于缓冲之中
scanf(“%d”,&input); 如果input输入数字那么返回值为1,如果输入除之母之外的数据则返回0;
3、strlen() 以字符为单位给出字符串的长度,不包括末尾空字符。lemon 5个字符
4、sizeof :
如果是获取类型的大小,那么括号是必须的 sizeof(float) sizeof(name)
如果是获取具体量的大小,那么括弧是可选的,可有可无 sizeof name sizeof 6.24
5、printf("控制描述",变量列表);
如果要打印% ,则需使用 %%
使用% 为转换说明符
%e 科学计数法
%10d 长度10位
%.2f 保留2位小数
6、printf 返回值:
正确解析: 返回字符的数目
错误解析: 返回一个负值
可用于检查是否输出错误
7、printf 参数传递
int main()
{
float n1 = 3.0;
double n2 = 3.0 ;
long n3 = 2000000000;
long n4 = 1234567890;
printf("%ld %ld %ld %ld \n",n1,n2,n3,n4);
// 0, 1074266112 , 0 ,1074266112
}
参数传递工作原理:
以上调用告诉计算机把变量的值传递给计算机,计算机会把这些值存放在堆栈 stack的一块内存区域来实现。 压栈的方式是按照变量的类型来进行放置的,而不是依据转换说明符的规则来放置的。因此n1、n2 分别占用八个字节,n3、n4 分别占用4个字节。printf函数从堆栈上按照转换说明符的规则取得内存区域的数据,由于%ld 说明符号占用4个字节,因此会取得n1 前半部分的4个字节,后面的四个字节没有被读取到,依次类推后面的数据读取也将会发生错误。
8、scanf
参数使用指向变量的指针来实现
使用空白字符来决定应该把参数分割为几个变量作为输入。
变量和转换说明符的数据类型应该保持一致。
如果变量和转换说明符的数据类型不一致,那么将会在不匹配的地方停止匹配,而不会跳过。程序将会阻塞。
9、scanf 返回值:
返回读取到的变量的数目,
如果没有读取到,返回值为0
如果读取到文件的结尾,则返回EOF
10、