2010-04-22

c语言笔记

1.int型除以float型,还是得到float型.

2.数组初始化,int a[10]={1,2,3,4},则前四个分别为1,2,3,4,其余为0 !

3.32位linux,gcc下,有
    sizeof int = 4
    sizeof char = 1
    sizeof float = 4

4. char s[10];
    sizeof(s);  //参数是s,值为10
    printf("%s",s);  //这里也是s

5.变量(int,char等)作函数参数,改变形参对实参没有影响;数组作为函数参数则不同,形参会改变实参的值.

6.数组作为函数的参数进行传递时,该数组自动退化为同类型的指针。

int a[10];
int*p = a;
sizeof(a);  //一般为40
sizeof(p); //一般为4

在函数内:
void f(int a[])
{
    sizeof(a); //为4,不管实参传递进来的数组有多少!!!


7. 形参的改动对实参的影响:
 23 void swap1(int a,int b)  //没用
 24 {
 25     int tmp;
 26     tmp=a;
 27     a=b;
 28     b=tmp;
 29 }
 30
 31 void swap2(int *a,int *b)  //也没用,和1一样,a,b的改变不能对&x,&y造成改动
 32 {  
 33     int *tmp;
 34     tmp=a;
 35     a=b;
 36     b=tmp;
 37 }  
 38
 39 void swap3(int *a,int *b) //可以.a的改动无效,但是直接改动*a可以!!:
 40 {
 41     int tmp;
 42     tmp=*a;
 43     *a=*b;
 44     *b=tmp;
 45 }

没有评论: