6.C语言 指针

2019-07-12  本文已影响0人  爱吃馒头的二饼

格式: 变量类型 *变量名

前面的变量类型代表指针变量只能指向该类型的数据

指针的作用:根据一个地址值,访问对应的存储空间

无论什么类型的指针都占用4个字节的存储空间,指针之所以需要变量类型就是为了在取值和赋值时知道该取值/赋值多少个字节的空间

int *p;
int a = 90;
//指针变量p指向了变量a
p = &a;
//把10赋值给p指向的内存空间
*p = 10;

int p;的仅仅只是一个象征,没有其他特殊含义;而p = 10中的作用是访问指针变量p指向的内存空间
指针变量只能存储地址

使用指针更改函数外部的变量的值

#include <stdio.h>
void changeNum(int *n);
int main()
{
    int a = 10;
    changeNum(&a);
    
    printf("%d\n",a);
    return 0;
}
void changeNum(int *n)
{
    *n = 100;
}

指向指针的指针

#include <stdio.h>
int main()
{
    int a = 10;
   
    int *p = &a;
    
    int **pp = &p;
    
    **pp = 20;
    
    printf("%d\n",a);
    return 0;
}

数组元素的访问方式

int ages[5];

int *p;

p = ages;

指针和数组的关系:http://blog.chinaunix.net/uid-21411227-id-1826897.html

指针变量的+1究竟加多少,取决于指针的类型

指针与字符串

定义字符串的两种方式。

//字符串变量,里面的字符可以被修改
char name[] = "hansion";
//字符串常量,里面的字符不可被修改
char *name2  = "hansion";

指针变量指向字符串的首字符

指向函数的指针

使用指针间接调用函数

#include <stdio.h>
void test(int a)
{
    printf("调用了test函数,参数为:%d\n",a);
}
int main()
{
    void (*p)(int);
    p = test;
    
    p(100);
    
    (*p)(200);
    
    return 0;
}
上一篇下一篇

猜你喜欢

热点阅读