精华内容
下载资源
问答
  • c语言指针变量初始化 在C中声明,初始化和使用指针变量 (Declaring, Initializing and using a pointer variable in C) In this tutorial, we will learn how to declare, initialize and use a pointer. We will ...

    c语言指针变量初始化

    In this tutorial, we will learn how to declare, initialize and use a pointer. We will also learn what NULL pointer are and where to use them. Let's start!

    在本教程中,我们将学习如何声明,初始化和使用指针。 我们还将学习什么是NULL指针以及在哪里使用它们。 开始吧!

    C指针变量的声明 (Declaration of C Pointer variable)

    General syntax of pointer declaration is,

    指针声明的一般语法是

    datatype *pointer_name;

    Data type of a pointer must be same as the data type of the variable to which the pointer variable is pointing. void type pointer works with all data types, but is not often used.

    指针的数据类型必须与指针变量指向的变量的数据类型相同。 void类型指针适用于所有数据类型,但并不经常使用。

    Here are a few examples:

    这里有一些例子:

    int *ip     // pointer to integer variable
    float *fp;      // pointer to float variable
    double *dp;     // pointer to double variable
    char *cp;       // pointer to char variable

    C指针变量的初始化 (Initialization of C Pointer variable)

    Pointer Initialization is the process of assigning address of a variable to a pointer variable. Pointer variable can only contain address of a variable of the same data type. In C language address operator & is used to determine the address of a variable. The & (immediately preceding a variable name) returns the address of the variable associated with it.

    指针初始化是将变量的地址分配给指针变量的过程。 指针变量只能包含相同数据类型的变量的地址。 在C语言中, 地址运算符 &用于确定变量的地址。 & (紧邻变量名)返回与之关联的变量的地址。

    #include<stdio.h>
        
    void main()
    {
        int a = 10;
        int *ptr;       //pointer declaration
        ptr = &a;       //pointer initialization
    }

    Pointer variable always point to variables of same datatype. Let's have an example to showcase this:

    指针变量始终指向相同数据类型的变量。 让我们举一个例子来说明这一点:

    #include<stdio.h>
    
    void main()
    {
        float a;
        int *ptr;
        ptr = &a;       // ERROR, type mismatch
    }

    If you are not sure about which variable's address to assign to a pointer variable while declaration, it is recommended to assign a NULL value to your pointer variable. A pointer which is assigned a NULL value is called a NULL pointer.

    如果不确定在声明时将哪个变量的地址分配给指针变量,建议将NULL值分配给指针变量。 分配了NULL值的指针称为NULL指针

    #include <stdio.h>
    
    int main() 
    {
        int *ptr = NULL;
        return 0;
    }

    使用指针或指针取消引用 (Using the pointer or Dereferencing of Pointer)

    Once a pointer has been assigned the address of a variable, to access the value of the variable, pointer is dereferenced, using the indirection operator or dereferencing operator *.

    一旦为指针分配了变量的地址,即可访问该变量的值,就可以使用间接运算符或反引用运算符 *对该指针进行 引用

    #include <stdio.h>
    
    int main()
    {
        int a, *p;  // declaring the variable and pointer
        a = 10;
        p = &a;     // initializing the pointer
    
        printf("%d", *p);    //this will print the value of 'a'
    
        printf("%d", *&a);   //this will also print the value of 'a'
    
        printf("%u", &a);    //this will print the address of 'a'
    
        printf("%u", p);     //this will also print the address of 'a'
    
        printf("%u", &p);    //this will print the address of 'p'
        
        return 0;
    }

    使用指针时要记住的要点 (Points to remember while using pointers)

    1. While declaring/initializing the pointer variable, * indicates that the variable is a pointer.

      在声明/初始化指针变量时, *表示该变量是指针。

    2. The address of any variable is given by preceding the variable name with Ampersand &.

      任何变量的地址都在变量名前加上&来给定。

    3. The pointer variable stores the address of a variable. The declaration int *a doesn't mean that a is going to contain an integer value. It means that a is going to contain the address of a variable storing integer value.

      指针变量存储变量的地址。 声明int *a并不意味着a将包含一个整数值。 这意味着a将包含一个存储整数值的变量的地址。

    4. To access the value of a certain address stored by a pointer variable, * is used. Here, the * can be read as 'value at'.

      要访问指针变量存储的某个地址的值,请使用* 。 在这里, *可以读作'at的值

    时间为例! (Time for an Example!)

    Let's take a simple code example,

    我们来看一个简单的代码示例,

    #include <stdio.h>
    
    int main()
    {
        int i = 10;     // normal integer variable storing value 10
        int *a;     // since '*' is used, hence its a pointer variable
    
        /*
            '&' returns the address of the variable 'i' 
            which is stored in the pointer variable 'a'
        */
        a = &i;
    
        /* 
            below, address of variable 'i', which is stored 
            by a pointer variable 'a' is displayed
        */
       printf("Address of variable i is %u\n", a);
    
        /*
            below, '*a' is read as 'value at a' 
            which is 10
        */
       printf("Value at the address, which is stored by pointer variable a is %d\n", *a);
    
       return 0;
    }

    Address of variable i is 2686728 (The address may vary) Value at an address, which is stored by pointer variable a is 10

    变量i的地址为2686728(地址可能有所不同),该值由指针变量a存储的地址值为10

    翻译自: https://www.studytonight.com/c/declaring-and-initializing-pointer.php

    c语言指针变量初始化

    展开全文
  • 指针变量初始化

    2016-10-27 20:25:08
    1.全局指针变量被自动初始化为NULL,局部指针变量初始值是随机的。
    1.全局指针变量被自动初始化为NULL,局部指针变量的初始值是随机的。
    展开全文
  • 成员是一个指针变量,那么最好在构造函数中将指针初始化,如果不初始化,编译器并不是将此指针指向NULL。因此,当使用if(!point) 进行判断的时候就会出现错误,而且调试很麻烦。 但是当你定义一个全局...

    在c++ 中


    成员是一个指针变量,那么最好在构造函数中将指针初始化,如果不初始化,编译器并不是将此指针指向NULL。因此,当使用if(!point)

    进行判断的时候就会出现错误,而且调试很麻烦。



    但是当你定义一个全局的指针的时候,如果没有初始化,编译器会将此指针指向NULL。

    但是不建议使用默认值。不具有可读性。而且具有误导功能。让人下意识就认为编译器会将所有的默认指向NULL。

    展开全文
  • 指针变量初始化

    千次阅读 2019-05-14 20:03:35
    那么怎么给一个指针变量初始化呢?即怎么样使一个指针变量指向另一个变量呢?上面的程序实际上已经使用了,即可以用赋值语句使一个指针变量得到另一个变量的地址,从而使他指向该变量。比如: int i, *j; j = &i...

    那么怎么给一个指针变量初始化呢?即怎么样使一个指针变量指向另一个变量呢?上面的程序实际上已经使用了,即可以用赋值语句使一个指针变量得到另一个变量的地址,从而使他指向该变量。比如:

    int i, *j;
    j = &i;
    

    这样就将变量 i 的地址放到了指针变量 j 中,通过 i 的地址,j就能找到 i 中的数据,所以j就“指向”了变量 i。其中 & 是“取地址运算符”,与 scanf中的 & 是一样的概念,* 为“指针运算符”,功能是取其内部所存变量地址所指向变量中的内容。因为 j 是定义成指针型变量,所以 j 中只能存放变量的地址,所以变量 i 前一定要加 &。大家一定要记住,指针变量中只能存放地址,不要将一个整数或者任何其他非地址类型的数据付给一个指针变量。

    此外还有两点需要注意:
    第一:j 不是 i,i 也不是 j。修改j 的值不会影响 i 的值,修改 i 的值不会影响 j 的值。j 是变量 i 的地址,而 i 是变量 i 里面的数据,一个是“内存单元的地址”,另一个是“内存单元的内容”

    第二:定义指针变量时的 *j 和程序中用到的 “*j”含义不同。定义指针变量时的“j”只是一个声明,此时的“”仅仅表示该变量是一个指针变量,并没有其他含义。而且此时该指针变量并未指向任何一个变量,至于具体指向哪个变量要在程序中指定,即给指针变量初始化。而当指定j指向变量 i 之后,“*j”就完全等同于 i 了,可以互相替换。

    #include<stdio.h>
    int main(void)
    {
    	int i = 3, *j;
    	j = &i;
    展开全文
  • 指针变量定义和初始化

    千次阅读 2019-04-17 08:16:47
    1.指针定义和初始化 2.指向数组的指针 指针数组 指针定义 ...指针变量初始化 语法形式 存储类型 数据类型*指针名=初始地址; 例: int *pa = &a; 注意事项 用变量地...
  • 首先要明确一点是:scanf只能给字符指针变量所指向的内存单元初始化,不能给字符指针变量初始化,其次:在用scanf给字符指针变量所指向的内存单元初始化之前一定要先使字符指针变量明确的指向某个具体的字符数组。...
  • C++ 不要忘记指针变量初始化

    万次阅读 2016-01-09 09:14:20
    可以说指针是C/C++语言编程中最给力的工具。指针,让我们直接去面对最为神秘的内存空间,赋予我们内存进行直接操作的能力。由于指针操作执行速度快、占用内存少,众多...其中,指针初始化就是我们应当重视的问
  • //给成员变量指针分配内存空间并指向它  //下面是结构体赋初值  query->uHead1 = 0xA5;  query->uHead2 = 0x5A;  query->uToken = 0x01;  query->DataLen = 0;  query->Para=0x01;  ...
  • 建议5:不要忘记指针变量初始化 可以说指针是C/C++语言编程中最给力的工具。指针,让我们直接去面对最为神秘的内 存空间,赋予我们内存进行直接操作的能力。由于指针操作执行速度快、占用内存少,众 多程序员...
  • 如何初始化指针变量

    千次阅读 2019-06-09 10:10:36
    https://jingyan.baidu.com/article/915fc4145d045b51394b201f.html
  • C++指针初始化和赋值

    千次阅读 2020-02-27 09:47:41
    指针变量初始化 语法形式 存储类型 数据类型 *指针名=初始地址; 例: int *pa = &a; 注意事项 用变量地址作为初值时,该变量必须在指针初始化之前已声明过,且变量类型应与指针类型一致。 可以用一个已有...
  • 在了解指针变量初始化之前,首先要弄清楚一点:什么是指针?1、指针的内容实际上是一个地址,我们只要给指针赋值一个地址,它将会指向这个地址表示的内存空间,这也是指针的作用,我们要访问某个地址时,这个指针...
  • 使用了可能未初始化的本地指针变量“old” 右键——>选择属性 SDL检查:更改为否
  • int *p; *p = 7; 如上,p不初始化不行吗,它里面的值不能是随机的吗,就像未初始化的局部变量那样,感觉也没啥问题啊
  • 指针初始化

    万次阅读 2018-12-06 20:13:37
    有下面的代码 #include&...我在这里声明创建了一个名为a的指针变量,然后把1赋值给a所指向的那块内存空间。编译结果如下: a未初始化,到底指向哪里根本我们不得而知。所以我们在进行赋值...
  • 指针初始化和赋值

    千次阅读 多人点赞 2018-01-05 17:00:58
    1、指针的初始化 指针初始化时,“=”的右操作数必须...此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。 例如: int a = 25; int *ptr = &a; int b[10]; int *point = b; int *p = &b[0];   如
  • 错误 9 error C4703: 使用了可能未初始化的本地指针变量“outStr” e:\c\bsdiff\bsdiff\bzip2.c 1293 1 bsdiff 错误 11 error C4703: 使用了可能未初始化的本地指针变量“outStr” e:\c\bsdiff\bsdiff\bzip2.c 1...
  • 目录上一讲指针链接:指针变量的定义、初始化指针变量的使用结束语 上一讲指针链接: 指针第一部分(内存、指针、指针变量的浅析)---- 2021.1.27 指针变量的定义、初始化 首先我们定义一个整型变量a,并且给这个...
  • 错误:使用了可能未初始化的本地指针变量 在运行程序时,VS报错使用了可能未初始化的本地指针变量。 解决办法:项目属性->配置属性->C/C+±>SDL检查;将SDL检查调整为否。 或者在创建指针变量时,将其初始...
  • 指针默认初始化

    千次阅读 2013-10-17 15:21:35
    大多数情况下指针变量在栈上分配内存,编译器在分配变量的空间时只是简单移动栈的指针,这样在栈上声明多个变量就来得很快速,进行一次栈指针的移动就可以了,而再读写内存意味着效率将会损失,并且初始化的内容很快...
  • //w->name weapon_1.name 首先我们先定义一个指向weapon类型的指针变量w,然后让w指向weapon_1,现在我们可以通过指向结构体变量的指针w去访问weapon_1。 值得注意的是(*w).name可简写成w->name,它们都表示weapon_1...
  • 第8章 指针 ——指针变量的定义、初始化及解引用指针前补充的知识:*1,内存如何编址 内存中的每个字节都有唯一的编号(地址) 内存地址按字节编号,其字长一般与主机相同 32位机使用32位地址,最多支持2的32次方...
  • delphi 变量初始化

    千次阅读 2013-09-29 08:46:04
    Delphi默认初始化变量是:全局变量,类成员;函数体内的变量不会初始化: 全局变量:Delphi编译器自动全局变量赋初值。当程序开始时,所有的整数赋为0,浮点数赋为0.0,指针为null,字符串为空。 因此,在源...
  • ![图片](https://img-ask.csdn.net/upload/201511/13/1447388772_933468.png)
  • 指针初始化问题

    千次阅读 2016-09-02 14:41:28
    指针初始化问题
  • 类的成员变量初始化总结

    万次阅读 2015-04-08 11:52:23
    1. C++变量初始化方式 首先把需要初始化的成员变量分为几类: ...Ÿ 一般变量可以在初始化列表里或者构造函数里初始化,不能直接初始化或者类外初始化 Ÿ 静态成员变量必须在类外初始化 Ÿ 常

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 469,647
精华内容 187,858
关键字:

怎么对指针变量初始化