十一月语言笔记

形参:没有真正调用;实参:有真正调用

函数间接递归:A调用B,B调用A

被调用函数定义在调用函数之后的,需要提前定义

递归调用时,问题规模的大小:n;

1.一定有一个确定的问题的规模

2.可以将主问题分成若干个子问题,并且子问题的问题规模小于主问题,但求解方法完全一样

作用域:变量的范围,本函数内定义了一个和全局中相同的变量

extern:全局变量外部说明

寄存器:速度快,空间小

全局数据区:生存期为全局;局部空间(一般储存于栈中):生存期为一个函数,函数运行完之后,空间回收,用栈储存。静态变量生存区为全局

寄存器变量:register;

f(i,j)

register int i;

int j;{}

宏定义:#define ll long long...(不加分号!)

#define Macro

.....

undefine...

int x=3,*p,p=&x//p指向x;

p是一个指针,*是一个运算,是对地址进行运算,*p是一个整型变量的指针

*:第二级运算符

int *intpt=&j; 即*intpt取j的地址

&k=kPtr; k=*kPtr

*和&运算是互逆的!

凡是i能用的地方,*ip也能用

++*ip=++(*ip);//ip不变*ip变

d=*ip(即存储单元数)++=*(ip++)//指向ip后一个对象

//即*运算是从右到左结合

数组?

int a[100],*p;

p=&a[0]//p=a;p+i=&a[i]

flexible and simple

*(a+i)=a[i]/若p=&a[0];则*(p+i)表示a[i],*(p+i)也可写成p[i]

for(p=a;p<=&a[99];p++)

        printf("*p=%d\t",*p);

等同:for(p=a;p<=&a[99];)

        printf("*p=%d\t",*p++);


赋值.ing:

while((*to++=*from++)!='\0')

       k++;

字符串复制:void strcpy(char *to, char *from)

删字:

char s[]="Fudan University",*p,*q,c='i';

for(p=q=s;*p;p++)

        if(*p!=c)  *q++=*p;

*q='\0';//重新构成字符串

swap函数要使用指针~

对于一个数组:a[]==*a,意为指向某个数组

int sum(int *a,int n)
{
    int s=0;
    for(;n--;)
        s+=*a++;
    return s;
}
等同于:
int sum(int *a,int n)
{
    int *ap,s;
    for(s=0,ap=a;ap<a+n;ap++)
        s+=*ap;
    return s;
}

字符串拷贝函数——指针写法

while(*to++=*from++)

三目运算符找字符:

char *searchCh(char *s, char c)
{
    while(*s&&*s!=c)
        s++;
    return *s?s:NULL;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值