C语言复习2.0

输入字符串 gets(name)

输出字符串 puts(name)

读取数据内存大小 sizeof(name)

二维数组 行可以省略 列不可以

内存以字节为编号

数组

int a[];

p=a;

printf("%p %p",a,&a);

得到的一样 但其实 数组名a取到的是这个数组第一个指针地址a=p

而&a取到的是整个数组的指针

指针

赋值操作

数据类型 + *数据名称

指针赋值 要同一类型

32位系统 指针固定4字节 64位 8字节

double *p,a=5;

p=&a;

printf("%p %p %p %f %f",p,&a,&p,*p,a);

1.p指向a的地址 2.a本身的地址 3.p本身的地址

4.p指向a的数据 5.a本身的数据

C语言复习2.0_第1张图片

运算操作

p   +n   -n   ++   --

(加减数量看p类型 例如 int *p  p-1 就p向小的地址移动4个 p+1p向大的地址移动4个)

即 p-n = p-sizeof(p类型)*n

指针相减 是 数据的个数 

Ex:int a[3]={1,2,5},*p,*q;

        p=&a[0];

        q=&a[2]

        printf("%d %d %d",*p,*q,p-q);

C语言复习2.0_第2张图片

 C语言复习2.0_第3张图片

 

指针与数组

int x[],*px=&x[0];

C语言复习2.0_第4张图片

你可能感兴趣的:(c语言,c++,开发语言)