指针(Day-7)
发布日期:2022-02-08 18:03:20 浏览次数:26 分类:技术文章

本文共 1773 字,大约阅读时间需要 5 分钟。

1. 存储及访问:

  1. 内存单元:一个字节,每个内存单元都有编号,也就是内存单元的地址。
  2. 访问方式:
    直接访问:直接通过名字访问;
    间接访问:不知道变量名,通过地址名访问,找到变量所在的地址。
    指针变量存储的是地址
  3. 定义指针变量:

    (1) 定义:类型修饰符 (int *) 变量名 初值 int *p = NULL;
    (指针变量所占的字节数和OS有关,32位-4字节 64位-8字节)

    (2) 打印指针的类型转换符:%p

    取值:* 取址:&
    int *是类型修饰符:int型的指针变量
    (3) 修改,赋值

int a = 5, b = 8;   int *pa = &a;   *pa = 6; //  修改了a里面的值      赋值工作   b = *pa; //  修改了b的值,对b进行赋值    取值工作   int c = 5, d =78; // 连续定义:    int  *pc = &c, *pd = &d;

2. 指针与数组,字符串

int a[5] = {
1, 2, 3, 4, 5}; int *p = NULL; p = a; p = &a[0]; // 数组名就是数组的首地址 p = &a[0]这样也可以 /* p = &a[0]; p + 1 = &a[1]; p + 2 = &a[2]; ... */ // 指针的偏移量和指向的数据有关 printf("%p\n", p); printf("%p\n", p + 1); printf("%p\n", p + 2); printf("%p\n", p + 3); printf("%p\n", p + 4); for (int i = 0; i < 5; i ++) printf("%d ", *p++); // p[i]------->1, 2, 3, 4, 5
  1. 数组遍历:数组名[下标] a[i] 指针变量:*[p + i] = a[i] 指针变量:p[i] = a[i]

  2. 指针和数组的区别:

    指针和数组名都可以通过下标的方法和指针法(p+1)来访问数组元素

    1. 指针可以修改指向
      数组名是常量, 表示首元素的地址,不能改变
    2. 指针的存储空间:4/8字节
      数组的存储空间:元素个数*元素存储空间
char name[] = "song";  char *pn = name;  *pn = ‘a';  // 结果是:aong  char *name1 = "zhao";  printf("%s “,name1);  //  可以直接这样输出
  1. 定义字符串有两种方式:
    1. 使用数组定义字符串——> 字符串变量 字符串元素可被改变
    2. 使用指针定义字符串——> 字符串常量 字符串元素不可以改变

定义:数组中的元素都是指针

char str1[3] = {
"iOS", "Android", "HTML5"}; /* str1[0] 是第一个字符指针,指向常量区的iOS str1[1] 是第二个字符指针, 指向常量区的Android str1[2] 是第二个字符指针, 指向常量区的HTML5 */ char *name = "zhao"; //指向常量区 char *names[] = {
"Android", "Java", "c#"}; //指向常量区

3. 指针与函数

void changeValue(int *a, int *b){    int temp = *a;    *a = *b;    *b = temp;    // 指针作为函数参数进行传递,可以实现形参的改变,作用到实参}
void printArray(int *a, int count){    for (int i = 0; i < count ; i ++) {        printf("%d  ",*a++);    }}int main(){   int a[4] = {
23, 45, 12, 78}; printArray(a, 4); // 指针作为形参 int *p = a; printArray(p, 4); // 指针作为实参}

转载地址:https://blog.csdn.net/Evelynzn/article/details/48463651 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:函数(Day-5)
下一篇:高级指针(Day-8)

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月28日 23时42分53秒