10月30周六区区小结

别熬夜!
上周所提到的 getchar 和 scanf函数都为输入函数 从缓冲区获取和清理缓存区的问题,这周科班的同学们应该接触到了,比如这道题:

#include<stdio.h>

int main()
{
	int i,n,letter,blank,digit,other;
	char ch;
	letter=blank=digit=other=0;
	
	scanf("%d",&n);
	ch = getchar(); //获取字符
	
	for(i=1;i<=n;i++){
		ch=getchar();
		if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'){
			letter++;
		}else if(ch==' '||ch=='\n'){
			blank++;
		}else if(ch>='0'&&ch<='9'){
			digit++;
		}else{
			other++;
		}
	}
	printf("letter = %d, blank = %d, digit = %d, other = %d",letter,blank,digit,other);
	
	return 0;
}

注意,此处只能用getchar扫描字符,而不能用scanf,否则scanf则会一并扫描最后的回车
引入这个与我理解相同的人所描述的:


所谓行缓冲模式, 是指一个以回车键作为结束信号,从而结束接受键盘输入过程,并刷新键盘缓冲区,此时缓冲区的内容为 [ .....\n ]
当诸如getchar(),scanf()之类的函数调用时,首先要读取键盘缓冲区, 如果为空则进入行缓冲模式, 行缓冲结束后,依次读取相应字符,getchar()取一个,scanf()按格式取, 之后返回. 如果不空则依次读取相应字符后,之后返回.

初识 地址
Pa  将存放地址的变量  叫做指针变量
&取地址操作符
*pa 解引用操作符,通过pa的地址找到a   *是说明pa是指针变量
可通过*pa=某 重新定义a的值
 

#include <stdio.h>
int main ()
{
	
	int a = 10;
	printf("%p\n",&a);
	int *pa = &a;

	return 0;
}

 以下是我偶然找到的变量指针和地址的总结,在此一起分享下

 以上仅是初识,还需要后续的实践

有错误请指教!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值