跳至主要內容

04-地址与指针

黑静美原创...大约 2 分钟编程CcppC井

使用内存

C 被设计为一种**低级语言open in new window**,可以轻松访问内存位置并执行与内存相关的操作。 例如,scanf()函数通过使用&符号将用户输入的值 举例:

#include <stdio.h>

int main() {
    int num;
    printf("Enter a number:");
    scanf("%d", &num);
    printf("%d", num);
    return 0;
}

&num是变量num的地址。

地址

内存地址是以十六进制数的形式给出的。十六进制,是一个基数为 16 的数字系统,用数字 0 到 9 和字母 A 到 F(16 个字符)来表示一组四位二进制数,其值可以从 0 到 15。

注:读取 32 位内存的 8 位十六进制数字要比尝试破译 32 位的二进制代码容易得多。

下面的程序打印变量 ik 的内存地址:

#include <stdio.h>
void test(int k){
    printf("The address of i(in k) is %x \n", &k);
}

int main() {
    int i = 0;
    printf("The address of i is %x \n", &i);
    test(i);

    return 0;
}


在 printf 语句中,%x是十六进制格式指定符。

变量的地址从声明时起就保持不变,直到它的作用域结束。

填空,打印变量 var 的 16 进制内存地址:

int var = 42;
printf("%___", ___ var)

x &

指针

指针在 C 语言编程中非常重要,因为它们可以让你轻松地处理内存位置。 指针是数组,字符串以及其他数据结构和算法的基础。 一个指针是一个变量,它包含了另一变量的地址。换句话说,它“指向”分配给另一个变量的内存位置,并可以间接第访问该变量。 指针使用号用* 声明,其形式为

pointer_type *identifier

pointer_type: 指针将指向数据类型。实际的指针的数据类型是一个16进制的数字,必须指出它将指出什么类型的数据。 星号*声明为一个指针,应该出现在用于指针变量的标识符旁边。

identifier: 指针名称

如:指向整型的指针p

int *p = NULL;
上次编辑于:
贡献者: Heijingmei
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3