C语言学习笔记(一)

1.原码和补码

  例子

     '6':原码:0110;   补码:0110

     '-6':原码:1110;  反码:1001;补码:1010 = 1001 + 1

  (-6) + 6 = 0110 + 1010 = (1)0000 = 0;

   当对补码取补时,得到的是他的原码;

2.编译过程:

  预编译——>编译(汇编语言)——>汇编(机器语言)——>链接

3.'chmod -R': 针对目录,将目录下的子目录及文件的权限全部修改。

4. snprintf()和sprintf()的比较:snprintf()要求其第二个参数指定目标缓冲区的大小,可确保缓冲区不溢出。

5.32位UNIX系统的一般编程模型称为ILP32模型,表示整数(I),长整数(L),和指针(P)都占用32位

  数据类型            ILP32模型           LP64模型

    char                8                8

    short              16                16

     int                 32                32

     long               32                64

     pointer               32                64

6.对整型常数进行类型转换的后缀有:u或U(unsigned)、l或L(long)、u/U与l/L的组合(如:ul、lu、     Lu等)。例:100u; -123u; 0x123l。

 通过后缀L或l将整数强行存储在long类型中。

 所有的实数都是以double存储。

7.常量在内存中的存储方式:

  1(0x0001): 在内存中以unsigned short(两字节)存储;

  '1'(0x31):   一个字节;

  "1":      字符串常量必须以'\0'来结束,占两个字节。

8.scanf()输入结束的条件:

  a.遇空格,TAB,或回车

  b.

  c.遇非法字符

  scanf()有返回值,成功返回"1",不成功"0"。

9.

  a: for(i = 0; i < n; i++)

        a[i] = 4;

  b: for(p = a; p < a + n; p++)

       *p = 4;

  (a)以a为首地址,向前移动i个元素,每次赋值都要这样做,"[]"是个运算符。

  (b)每次都向后移一个单位就行了,(b)的效率明显要高。

10.%f和%lf

  

(a):

<stdio.h>

int main()

{        

  int a, b, c;        

  double y;        

  a = scanf("%lf",&y);        

   printf("%d,%f,%lf\n",a,y,y); }

输入1234567891234567890

输出1,1234567891234567936.000000,1234567891234567936.000000

gdb:

Breakpoint 1, main () at 12_11_4.c:7
7               a = scanf("%lf",&y);
(gdb) s
12345678912345678912
8               printf("%d,%f,%lf\n",a,y,y);
(gdb) p y
$2 = 1.234567891234568e+19

(b):

#include <stdio.h>

int main()

{        

  int a, b, c;        

  double y;        

  a = scanf("%f",&y);        

  printf("%d,%f,%lf\n",a,y,y);

}

输入123.11

输出1,0.000000,0.000000

第二次输出为什么都是零呢?

看gdb调试:

Breakpoint 1, main () at 12_11_4.c:7
7               a = scanf("%f",&y);
(gdb) s
1234.123
8               printf("%d,%f,%lf\n",a,y,y);
(gdb) p y
$1 = 4.8545332934724682e-270

1234.123是被读入成功的,但是存放格式是float。

  

 

posted @ 2013-12-11 00:05  Cai00  阅读(468)  评论(4编辑  收藏  举报