王道C语言基础入门 简略笔记

文章详细阐述了C语言中scanf函数的使用,包括输入处理、错误处理和缓冲区管理。还讨论了字符转换、格式化输出以及字符串处理函数如gets和puts。此外,提到了C语言中的数组、指针和内存分配,包括堆栈和堆的区别以及动态内存管理。引用的概念也在C++中被提及。
摘要由CSDN通过智能技术生成

1.%d 十进制整数
%f  一个浮点数
%c 一个单一字符
scanf 读取标准输入的原理:
#define _CRT_SECURE_NO_WARNING
标准输入缓冲区:行缓冲
缓冲区为空时,scanf才会阻塞
%d%f会忽略空格 
发生错误时返回EOF(#define EOF(-1))
ctrl+z 回车结束
rewind(stdin),fflush(stdin)清空缓冲区
空格 32 ascii
混合输入时每次在%c之前需要加入一个空格
printf控制输出格式:
%4.1f %3d(右对齐占3位) %-3d(左对齐占三位)
2.大写变小写+32
+48 数字变字符
等号左边必须是变量
~按位异或
当控制台卡住:①scanf输入(少输入内容可以输入)②死循环(不能输入)
while之后不能加分号,会死循环
数组在传递时,元素个数传递不过去
3.gets(c)可读取带空格字符串
//当一次读取一行时,使用gets();
puts(c)等价与printf("%s\n",c);
char c[20] 字符数组的数组名存的是字符数组的起始地址
c是一个字符数组,编译器给c存的是字符指针
strlen strcpy strcmp strcat
fgets(c,sizeof(c),sdtin);
fgets()相对于gets去读取标准输入时,会把\n放到字符数组中
可以把数组长度-1赋值为\0
4.

C函数调用时是值传递
数组是特殊的,不能和整型变量,浮点型,字符型变量类比
数组名 a类型是数组,a里面存的是地址值,数组的起始地址

内存分为三种权限:可读,可写,可执行
数组名作为实参传递给子函数时,是弱化为指针的;数组传递是弱化成指针的

malloc
void *p; 
栈空间会随着函数的执行结束而释放
堆空间不会随子函数的结束而释放,必须自己free

不可以对常量区数据进行修改
二级指针的初始化一定是一个一级指针取地址

typedef使用:
起别名

typedef struct student{
              int num;
              char name[20];
           }stu,*pstu;
pstu等价于struct student*

c++的引用:
把&写到形参的位置是C++的语法,称为引用
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值