C Primer观后小记录

1、地址运算符 &

        一元运算符&可以取得变量的存储地址。假设a=1,那么&a就是a在内存中的位置。

        指针是一个其数值为地址的变量(或者更一般的说是一个数据对象),指针声明时,需要指定其指向地址的值的类型。当创建一个指针时,只分配了存储指针的本身的内存空间,并不分配用来存储数据的内存空间(可以将已有变量的地址赋值给指针,或者通过malloc分配内存).

        间接运算符 *, 当其后跟一个指针或地址时,*给出存储在被指向地址中的值。

        指针在函数间通信

int x, y, z;
x= 1; 
y = 2;
z = 0;
add(x, y, &z);//函数执行的是x+y=z的值
得出结果 z = 3;
z指向地址的变量发生改变!

2、一维数组长度

    定义一个长度为10的整形数组,const int days[]={1,2,3,4,5,6,7,8,9,10}; 数组长度为 sizeof days / sizeof days[0]

    多维数组 arr[row][column], 

定义一个多维数组
cons int arr[2][3]={
{1,2,3},
{4,5,6}
}

3、数组和指针

     举例,flizey为以为数组,

flizey = &flizey[0] //数组名为该数组首元素的地址
double *p;
p = flizey;
p++;
p指向第二个数组元素的地址,
所以指针定义时,要申明只针对变量类型,指针加1不是地址简单的加1,而是变量地址+一个单元的存储地址。

4、字符和字符串

    gets(), puts(), getchar(), putchar(), fgets(), fputs(), strlen(), strcat(), strncat(), strcmp(0, strncmp(), strcpy(), strncpy(), 

5、结构变量

    定义图书馆书的书名,作者,价格等为一个数据对象。

    struct book library;

    是以下声明的简化

struct book{
char title[MAXSIZE];
char author[MAXZISE];
float value;
} library;

 声明结构数组

struct book library[MAXSIZE];

指向结构的指针:

typedef: 

typedef struct complex{
   float real;
   float imag;
} COMPLEX;
可以用类型XOMPLEX 代替struct complex 来表示复数。
typedef 是为经常出现的类型创建一个方便的、可识别的名称。

6、C预处理器和C库

明显常量:#define   ;  文件包含: #include    ; #undef 指令取消一个给定的#define ;   条件编译: #ifdef , #else, #endif

    

 
  


你可能感兴趣的:(C学习记录)