C程序设计----指针和数组

1.ANSI C 使用类型void* 代替char *作为通用指针类型,即一个指向void类型的指针可以存放任何类型的指针,但它不能间接引用其自身;

2.指针和整数之间不能相互转换,但0是唯一的例外:常量0可以赋值给指针,指针也可以与常量0比较。程序中常用常量NULL代替0,符号常量NULL定义在标准头文件<stddef.h>中;

3.strstr()函数

包含文件: string.h
函数名: strstr
函数原型:
1
extern  char  * strstr ( char  *str1,  const  char  *str2);
语法:
1
strstr (str1,str2)
str1: 被查找目标 string expression to search.
str2: 要查找对象 The string expression to find.
返回值:若str2是str1的子串,则先确定str2在str1的第一次出现的位置,并返回此str1在str2首位置的地址。;如果str2不是str1的子串,则返回NULL。
例子:
1
2
3
char  str[]= "1234xyz" ;
char  *str1= strstr (str, "34" );
cout << str1 << endl;
显示的是: 34xyz

4.argv相关容易混淆问题

   main(int argc, char *argv[])
(*++argv)[0]和*++argv[0]的不同:

前者等价于argv[1][0],也就是第二个参数的第一个元素的值;

后者等价于argv[0][1],也可写为*(++argv[0]),也就是第一个参数的第二个元素的值。


5.任何类型的指针都可以转换成void * 类型,并且在将它转换回原来的类型时不会丢失信息。

6.复杂声明

int *f();      /* f:是一个函数,它返回一个指向int类型的指针  */
int (*pf)();   /* pf:是一个指向函数的指针,该函数返回一个int类型的对象 */

 稍微复杂一点的: 

char (*(*x())[])()   /* x是一个函数,它返回一个指针,该指针指向一个一维数组,该一维数组的元素是指针,
                        这些指针分别指向多个函数,这些函数的返回值是char类型  */





 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值