登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 第十三十四天

[复制链接]
发表于 2019-2-3 02:13:14 | 显示全部楼层 |阅读模式
学习笔记
学习科目: c语言
学习安排: 指针 指针与数组 字符类型 逃逸字符
开始时间: 2019-02-01
结束时间: 2019-02-02
一.指针
1.指针:保存地址的变量
p指向i即为p的值为i的地址
p为地址*p为值,p为指针*p为int变量
int*p,q表示:*p为一个int变量,q为一个int变量,p为一个指针变量
2.作为参数的指针:不能交给它值,只能交给他它值的地址
3.*:单目运算符,访问那个地址上的变量(取出地址上的值)

二.指针与数组
函数参数表里的数组
1.其实就是指针
eg:void minmax(int a[ ], int len, int *min, int *max)中a[ ]为数组的指针而非数组,所以无法用sizeof得到正确元素个数,在[ ]中加数字也没有作用,所以将a[ ]改为*a也正确
2. sizeof(a)== sizeof(int*)
3. 但是可以用数组的运算符[ ]进行运算
→eg:int sum(int *ar, int n)和int sum(int ar[ ], int n)在参数表中的函数原型等价
→数组变量是特殊的地址
→int a[10]等价于int*p=a,记无需用&取地址,但是数组的单元表达的是变量,需要用&取地址
→p[0]==*p意思是
021312hjk11zttuntzn23y.jpg
→数组变量是常量指针,所以不能被赋值。

三.字符类型
→char是一种整数,也是一种特殊的类型:字符
→用单引号表示的字符字面量,单引号和内部括起来的东西一起被称为一个字符
→printf和scanf里用%c来输入输出字符
→每个字符在计算机里面都有一个值来表达他
eg:如何输入'1'这个字符给char c
scanf("%c",&c)时输入1
scanf("%d",&i);c=i时输入49
注意:scanf只能读int不能读char

混合输入:
int i;
char c;
scanf("%d %c",&i,&c);      //%d后面有空格
scanf("%d%c",&i,&c);
%d后面没有空格,表示只读到整数后结束,后面那个给下一个,%d后面有空格表示,把空格都读掉

字符是一个整数,故可以做计算
→一个字符加一个数字得到ASCⅡ码表中那个数之后的字符
→两个字符的减,得到
他们在表中的的距离
eg:大小写转换
字符在ASCⅡ码表中是顺序排列的
大写字母和小写字母是分开排列的
故:a+'a'-'A'可以把一个大写字母变成小写字母,a+'A'-'a'可以把小写变成大写字母

四.逃逸字符
用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠"\"开头,后面跟上另一个字符,这两个字符合起来组成了一个字符
eg:printf("请输入\"5 7\"表示5英尺7英寸")因为如果以后后面有一个引号,则两个引号看为一体,故用反斜杠

021312rzezm023et1emmy2.jpg
→\b表示回退而不删除,即,当为printf("123\bA")输出12A,但也有可能有的终端会把\b翻译为删除
→\t:每一个表格中都有不同的位置,\t让它从下一个位置输出,而不代表固定的字符数量,即

021313n56z5up7ak55vv5a.jpg
这也叫做“制表位”
→回车换行,在早期的打字,其中是两个动作,现在\n被翻译成回车和换行两个动作

还有点儿没学完,剩下的明天弄


今天好好学习了吗???嘤嘤嘤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表