第八章知识点

1.char占用1个字节;int占用2个字节;float占用4个字节;double占用8个字节;
2.定义指针:类型名   *指针变量名;(定义多个指针每一个都要带*)
3.“*”表示指针声明符,指变量名时只有p。
4.不同类型的变量名的指针指向不同的变量类型。指针的类型和它所指变量的类型必须相同。
5.必须将指针变量和一个特定的变量进行关联后才可以使用,也就是说指针变量要先赋值再使用。
6.”p=&a;“将指针p和变量a关联,由取址符&和间接访问运算符*实现。
7."p=0;p=NULL;"把特殊值0赋值给指针p,这时指针的值为NULL。常量NULL再系统文件stdio.h中被定义,其值为0。代表空指针,不指向任何单位。
8.p=&a;中*p和a指向同一个储存空间,他们的值是一样的。
9.”p=(int *)1732;“使用强转避免编译错误,表示p指向地址为1732的int型变量

9.5相同类型的指针可以赋值,比较和算数运算。

9.75表达式*p=*p+1,++*p,(*p)++,都是将指针p所指变量加1
10.C语言中的变量再引用前必须先定义并赋值再引用(包括指针)
11.不能用数值作为指针变量的初值,但可以初始化一个空指针。
12.如果将某个变量地址作为函数的实参,相应的形参就是指针。
13.实参和形参的数据传递是单向的

13.5想返回多个值用指针,return只能返回一个值。
14.指针名和数组名都代表内存地址。指针名是一个变量(可以改变),数组名是一个常量(不能改变)。
15.数组名代表一个地址即指针值,它的值是数组首元素的地址(基地址)
16.数组名的值是一个特殊的固定地址,可以把它看作指针常量。
17.数组a指针p,p=a+1合法,a=a+1不合法。
18.指针的每一次加一或减一,都是加上或减去指针所指向的那个变量数据类型的长度。(p3000 p++3002)
19.有数组a[i]指针p,那么p=a;与p=&a[0]等价。p=a+i与p=&a[i]等价。
20.a[i]等价于*(a+i)
21.*(p+i)等价于p[i].(p[i]是数组中的第i个数据)

等价:

&a[i]=a+i+p+i=&p[i]=地址,

a[i]=*(a+i)=*(p+i)=p[i]=内容
22.p和q是指向数组元素的两个指针,p-q产生一个int值,表示p和q之间的数组元素个数。但加法和乘法是不合法的。只有相减和比较
23.实参是数组名,形参是指针变量,可以是*a,也可以是a[ ]

23.5字符串常量是用一对双引号括起来的字符序列
24.系统在存储一个字符串常量时先给定一个起始地址,从该地址的存储单元开始,连续存放该字符串的字符。
25.字符串数组的数组名,指针,字符串的值都是地址(捆绑输出,连续存放)
26.char sa[ ]="array";字符串sa在内存中占用了一块连续的单元,有确定地址,每个数组元素存放字符串的应该字符,字符串就存放在数组中。

如果要改变sa所代表的字符串,只能改变数组元素的内容
27.char *sp="point";字符指针sp只占用一个可以存放地址的内存单元,存储字符串首字母的地址,而不是将字符串存放到字符指针变量中去。

如果要改变指针sp所代表的字符串,通常直接改变指针的值,让它指向新的字符串
28.头文件string.h给出字符串处理
29.gets(s)如果输入成功,则返回值是字符串第一个字符的地址,如果失败返回NULL。
30.puts(s)输出时遇到‘\0’换成‘\n’即自动换行。成功返回'\n',失败返回EOF。
31.复制字符串strcpy(str1,str2);

连接函数strcat(s1,s2);

字符串比较strcmp(s1,s2);以第一个不相同的字符比较结果为准(例如u-a)

字符串长度strlen(s1)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值