首页 > 代码库 > C基础复习

C基础复习

  因为学习视频解码。不得不重新复习下C语言呢,3年都没碰了嘿嘿!

1、c与java不同它没有boolean和byte这2个基本类型,boolean在c中利用0和非0来代替,0为false,非0为true。byte为一个字节,在c中可以用char类型来代替。

C中各种基本类型所占的字节数:(利用sizeof得到的)

    char 占1个字节 (java中2个字节

    short 短整型 2个字节

    int  4个字节

    long 占4个字节

    double占8个字节

2、 c语言的输出占位符:

    %d  - int

    %ld  - long

    %c   - char

    %f  - float

    %hd - short

    %lf    - double

    %x  - 16进制输出int或long、short

    %o - 八进制输出

    s%  - 字符串输出

3 指针也是一种数据类型,指针是指向对象的在内存中的地址:&i代表的是i的地址(给指针赋值时用到),p的值就是i在内存中的地址,*p则是地址中的值,可以用数组的指针变量来访问数组:如下面程序运行: 

 

	int i = 10;
	int *p = &i;
	char a[3] = { ‘a‘, ‘b‘, ‘c‘ };
	printf("i:%d \n", i);
	printf("p:%d\n" , p);
	printf("*p:%d \n", *p); 
	printf("&i:%d \n", &i);
	printf("*(p+1):%d \n", *(p+1));
	printf("*a:%c \n", *a);
	printf("*(a+1):%c \n", *(a + 1));

  

 输出的结果为:

  技术分享

 4 指针的指针,即多级指针。就是指针是个变量,它也有地址,指向指针变量的地址即为地址的地址,即二级指针变量。如下:

     int i = 10;
	int *p = &i;
	int **c = &p;
	
	printf("%d\n",c);	//c指针变量是地址的地址
	printf("%d\n", *c);	// *c为c指针变量地址里的值
	printf("%d\n", **c);//	*cc 是以c指针变量指向的地址的值为地址的值

  5 通过指针来修改变量值:

技术分享
    int i = 10;
    int *p = &i;
    int **c = &p;
    **c = 4;
    printf("%d\n",i);    //c指针变量是地址的地址
View Code

执行后i的值为4

C基础复习