C语言——初始指针

简介: C语言——初始指针

首先,明确一点:访问内存时,首先要得到地址,有地址才能找到内存单元!!!那么地址从何而来呢?

内存空间为了有效管理

1.把内存空间划分为一个个有效的内存单元 1个字节 == 8个比特位

2.给每个内存单元 编号==地址==指针

未来只要指定一个地址,通过地址就能够找到对应的内存单元

口头语中说的指针:一般指的是指针变量

#include<stdio.h>
int main()
{
  int a = 10;
  //& - 取地址操作符
  int * pa = &a;//0x0012ff48  -内存的编号==地址==指针, pa叫指针变量
  //* 是在说明pa是指针变量
  //int 是在说明pa指向的是int类型的变量
  *pa = 20;//* 解引用操作符 - 通过地址找到地址所指向的对象。*pa就等价于a
  printf("%d\n", a);
  return 0;
}
/*总结:
1. 内存会被划分以字节为单位的一个个的内存单元
2. 每个内存单元都有编号,编号 =地址=指针
3. C语言中创建的变量,其实是向内存申请一块空间,比如:int a = 10,就是向内存申请4个字节的空间,每个字节都有地址
4. &a的时候,拿出的是4个字节中地址较小的那个字节的地址(编号)
5. 这个地址要存储起来,给一个变量,这个变量是用来存放地址(指针)所以叫指针变量:int *pa = &a;
6. pa中存放的是a的地址,要通过pa中的地址找到a,怎么写?*pa--> 通过pa中的地址找到a *pa = 20;*/

探讨指针变量的大小

int main()
{
  char* pc;
  short* ps;
  int *pi;
  double* pd;
  printf("%d\n", sizeof(pc));
  printf("%d\n", sizeof(ps));
  printf("%d\n", sizeof(pi));
  printf("%d\n", sizeof(pd));
  return 0;
}
//如果是32位操作系统,指针变量大小就是4个字节
//如果是64位操作系统,指针变量大小就是8个字节
相关文章
|
15天前
|
安全 C语言
【C语言】如何规避野指针
【C语言】如何规避野指针
20 0
|
16天前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
1月前
|
存储 程序员 编译器
爱上C语言:指针很难?来来来,看看这篇(基础篇)
爱上C语言:指针很难?来来来,看看这篇(基础篇)
|
5天前
|
C语言
c语言指针总结
c语言指针总结
12 1
|
11天前
|
存储 程序员 C语言
【C 言专栏】C 语言指针的深度解析
【4月更文挑战第30天】C 语言中的指针是程序设计的关键,它如同一把钥匙,提供直接内存操作的途径。指针是存储其他变量地址的变量,通过声明如`int *ptr`来使用。它们在动态内存分配、函数参数传递及数组操作中发挥重要作用。然而,误用指针可能导致错误,如空指针引用和内存泄漏。理解指针的运算、与数组和函数的关系,以及在结构体中的应用,是成为熟练 C 语言程序员的必经之路。虽然挑战重重,但掌握指针将增强编程效率和灵活性。不断实践和学习,我们将驾驭指针,探索更广阔的编程世界。
|
12天前
|
算法 搜索推荐 程序员
C语言中的函数指针和回调函数
C语言中的函数指针和回调函数
9 2
|
15天前
|
存储 编译器 C语言
【C语言】初步解决指针疑惑
【C语言】初步解决指针疑惑
7 0
|
16天前
|
存储 C语言
指针深入解析(C语言基础)带你走进指针,了解指针
指针深入解析(C语言基础)带你走进指针,了解指针
|
16天前
|
C语言 C++
C语言:指针运算笔试题解析(包括令人费解的指针题目)
C语言:指针运算笔试题解析(包括令人费解的指针题目)
|
18天前
|
存储 安全 编译器
C语言怎样定义指针变量
C语言怎样定义指针变量
7 0