Head First C学习日志,第二章 用指针输入数据
1.scanf scanf的调用格式为: scanf("< 格式说明字符串 >",< 变量地址 >); 第2个参数一定是一个地址。 1.1输入字符串: char name[40]; printf("Enter your name:\n"); scanf("%39s",name); 格式字符串%39s表示:最大接受39个字符(+’\0’),第2个参数name,是数组名作为指针使用,把地址传进了函数,scanf()便可以更新变量的内容。 1.2输入数字 int age; printf("Enter your age:"); scanf("%d",&age); printf("age:%d\n",age); 格式字符串为%d,则接受的第二个参数为一个int*指针。 数组越界问题:如果忘记限制读取字符串的长度,用户就可以输入远远超出程序空间的数据,多余的数据会写到计算机还没有分配好的存储器中。缓冲区溢出很有可能会导致程序出错。 2.使用fgets输入 fgets和scanf一样,接受char指针,不同的是,你必须给它最大长度: char food[5]; printf("Enter favorite food:"); fgets(food,sizeof(food),stdin); 第1个参数为,接受指向缓冲区的指针,第2个参数为,接收字符串的最大长度(包含’\0’),第3个参数为输入