1.数组的指针与函数参数
数组作为函数参数,实参和形参的对应关系可归纳以下四种情况:
2.指针与字符串
①字符串的指针
c语言的字符串是以‘\0’作结束符的字符序列
用字符数组存放字符串(即含‘\0’的字符数组可以看作字符串)
字符串指针就是字符数组的首地址
②字符串指针变量
定义:char *指针变量
如: char *p,*q="Language";
p="This is a book.";
注意:p“指向”字符串的首地址,不是“存放”字符串
③字符数组与字符串指针变量比较
char a[]="I love this game",*p=a;
1)存储的内容不同:字符数组可以存字符串,存的是字符;字符指针变量存的是字符串在内存的首地址。
2)赋值方式不同:字符数组只能对各个元素赋值;(一次只赋一个字符,要赋若干次)字符指针变量只赋值一次,赋的是地址。
3)当没有赋值时:字符数组名代表了一个确切的地址;字符指针变量中的地址是不确定的
4)字符数组名不是变量,不能改变值;字符指针变量可以改变值。
5)可以像数组那样用下标形式引用指针变量所指字符串中的字符
6)字符串指针变量的应用:
可以用指针变量指向一个格式字符串,在printf中直接使用此指针变量。
如:char *fmt="a=%d,b=%d,c=%d\n";
则 printf(fmt,a,b,c);等价于printf("a=%d,b=%d,c=%d\n",a,b,c);
7)注意使用的区别: