美文网首页
C语言指针

C语言指针

作者: RubyiOS | 来源:发表于2018-03-22 16:18 被阅读0次

1.指针是一个变量;声明一个指针 int *p;p是指针变量,类型是int *,64位系统下所有指针都占8个字节;放地址用的;

int a;

int *p = &a; 把a的地址放到p里边,p是指针变量,类型是int *;p指向a,p是a的地址

*p = 8;//*p表示找到地址为p的这块空间,相当于a=8;

地址是常量,指针是地址的变量;

&6不可以这样,因为6是常量,没有空间,也就没有地址;取地址只能针对变量;

2.指针通常和数组一块使用

#include <stdio.h>

int main (void){

        int a[10];

        int *p = a;//单独的数组名a相当于其第一个元素的地址,及&a[0];数组名是数组手元素的地址;

p = &a; //p是指向数组a的指针在这里,区分下;指针都是占8字节

        *p = 8;//相当于把a[0]=8;

        *(p+1) = 9;//&a[0] == ox?; %a[1] == ox? +4;   *(p+1)就相当于a[1];

    p+i就是每个元素的地址,因为是64位系统下整形,每个地址正好距离4个字节

0x7ffee3a41844

0x7ffee3a41848

0x7ffee3a4184c

0x7ffee3a41850

0x7ffee3a41854

0x7ffee3a41858

0x7ffee3a4185c

0x7ffee3a41860

0x7ffee3a41864

0x7ffee3a41868

}

指针变量加1,其结果相当于加1个其指向的字节数。

int *p = (int *)5;

p++;

p == 9;//因为int占4个字节(32位系统和64位系统),此时p还是指针

printf("%p",p);//不能用%d;指针类型

char *q = (char *)5;

q ++;

q == 6; //因为char占1个字节

const 修饰符:

char a = 'A';

const char *p = &a;  //星前const(char const *p和前边一样)表示p可以改变,*p不可以改变;

char * const p;修饰的是p。p不可以改变

constchar * const p; *p和p都不可以改变

相关文章

  • C语言05- 指针

    C语言05- 指针 13:指针 指针是C语言中的精华,也是C语言程序的重点和难点。 13.1:指针定义与使用 指针...

  • 02-C语言的指针

    02-C语言的指针 目标 C语言指针释义 指针用法 指针与数组 指针与函数的参数 二级指针 函数指针 指针在C中很...

  • C语言指针总结大学霸IT达人

    C语言指针总结大学霸IT达人 C语言的指针是C语言区别其它语言的最主要的特定之一。有了指针,C语言就可以抛开所有束...

  • 带小白学C语言指针

    C语言里指针才是C语言的开始和指针;C语言里基本所有东西都是由指针演变而成; 指针是指向地址的变量,类型就是指针...

  • 在Swift中使用C语言的指针

    在Swift中使用C语言的指针 在Swift中使用C语言的指针

  • [Swift]结构体指针操作

    C语言的指针操作 在c语言中申明一个变量并通过指针修改该变量的值 a value is 2 c语言操作结构体指针操...

  • Go语言-指针

    Go语言中的指针不同于C语言,Go语言的指针使用方法要简单很多。当然和C语言从指针定义到指针的使用都有很大的不同。...

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • 指针数组和数组指针

    指针数组|存储指针的数组 在C语言和C++语言中,数组元素全为指针的数组称为指针数组。 例如:int *p[10]...

  • iOS开发 -- C语言基础8(指针)

    iOS开发 -- C语言基础8(指针) 指针是C语言中非常重要的数据类型,如果你说C语言中除了指针,其他你都学得很...

网友评论

      本文标题:C语言指针

      本文链接:https://www.haomeiwen.com/subject/amdjqftx.html