精华内容
下载资源
问答
  • 这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、...

    int *p = (int *)654321;
    就像这样,这个操作会在存放p这个指针变量的内存空间处写上了654321,这不会有什么问题,就像你给一个变量赋值一样,不管这个待赋值是多少,赋值操作本身都不会有问题。

    唯一可能带来问题的是对这样一个指针的解引用操作,例如

    *p=123456;
    因为654321这个地址你不知道是不是一块合法的地址,而往654321这个地址上写数可能会导致程序错误,或者直接segment fault,具体情况就要看这个地址本身了。既然指针不能随意赋值,那C语言为什么还要保留这样的特性呢?这是因为在很多硬件相关的场合,需要直接操作某个特定值的地址空间(例如一个给定地址的寄存器),这个时候给指针赋值然后操作它就变得很有用,不过这样的操作通常不会发生在用户态的应用程序中。

    如下代码不会报错
    int a=12;
    p=&a;
    *p=123;

    printf("*P的值为%d\n",*p);

    *P的值输出为123;

    展开全文
  • 如题!
  • 指针变量是指向指针的变量,是一个存放地址的变量 变量的指针是变量的地址 指针变量的一般形式为: float *pointer_3; ...(1)给指针变量赋值:p = &a; (2)引用指针变量的值:printf("% o

    指针变量是指向指针的变量,是一个存放地址的变量

    变量的指针是变量的地址

    指针变量的一般形式为:  

    float *pointer_3;

    char *pointer_4;

    指针变量的赋值:(存放的是变量的地址)

    pointer_3 = &i;

    pointer_4 = &j;

    如何引用指针变量:

    (1)给指针变量赋值:p = &a;

    (2)引用指针变量的值:printf("% o",p);

    (3)引用指针变量指向的变量:printf("%d",*p0);



    展开全文
  • 关于如何将const char* 变量通过strcpy赋值给未初始化的char*变量 首先,未初始化的char*变量只是一个char指针 而strcpy(char* p, const char* s)是将两个指针解引用。然后进行拷贝。 如果直接通过strcpy函数来...

    关于如何将const char* 变量通过strcpy赋值给未初始化的char*变量

     

    首先,未初始化的char*变量只是一个char指针

    而strcpy(char* p, const char* s)是将两个指针解引用。然后进行拷贝。

    如果直接通过strcpy函数来将s赋值给未初始化的p。就会造成内存溢出。因为 p它指向一个未知的地址。解引用出来也不知道空间多大,是什么鬼东西。

    所以如果要使用stcpy的话 就需要先动态分配空间给p 

    p = new char[sizeof(s)/sizeof(f[0])];

    strcpy(p, s);

    这样就没问题了。 空间分配好了 就不怕了

     

    最后记得delete p;

    展开全文
  • 一、首先我们来了解关于结构体以及结构体数组的概念。 自定义结构体: struct weapon{ char name[20]; int atk;...型(类似于我们熟知的int型,...如何给这个结构体赋值以及访问里面的属性? struct weapon...

    一、首先我们来了解关于结构体以及结构体数组的概念。

    自定义结构体:

    struct weapon{
        char name[20];
        int atk;
        int price;
    };

    它是"weapon"型(类似于我们熟知的int型,String型等),里面有一个char类型,两个int类型。

    如何给这个结构体赋值以及访问里面的属性?

        struct weapon weapon_1 = {"weapon_name",100,200};
        printf("%s\n,%d\n",weapon_1.name,++weapon_1.price);

    "weapon weapon_1"表示我们实例化了weapon类型的一个具体的对象,我们给它起名为“weapon_1”(类型于int a),并且我们给“weapon_1”赋了三个值{"weapon_name",100,200},这三个值分别对应结构体里的char name[20],int atk,int price。

    完整代码如下:

    #include<stdio.h>
    struct weapon{
        char name[20];
        int atk;
        int price;
    };
    
    int main()
    {
        struct weapon weapon_1 = {"weapon_name",100,200};
        printf("%s\n,%d\n",weapon_1.name,++weapon_1.price);
        return 0;
    }
    

    运行结果:

    什么是结构体数组?

        struct weapon weapon_2[2] = {{"weapon_name1",50,100},{"weapon_name2",100,200}};
        printf("%s  %d\n",weapon_2[0].name,weapon_2[1].atk);

    struct weapon weapon_2[2]中[2]表示这个数组的大小是2。

    完整代码如下:

    #include<stdio.h>
    struct weapon{
        char name[20];
        int atk;
        int price;
    };
    
    int main()
    {
        struct weapon weapon_1 = {"weapon_name",100,200};
        printf("%s %d\n",weapon_1.name,++weapon_1.price);
    
        struct weapon weapon_2[2] = {{"weapon_name1",50,100},{"weapon_name2",100,200}};
        printf("%s %d\n",weapon_2[0].name,weapon_2[1].atk);
    
        return 0;
    }

    运行结果:

     二、指向结构体变量的指针变量

     先上代码:

        struct weapon weapon_1 = {"weapon_name",100,200};
        printf("%s %d\n",weapon_1.name,++weapon_1.price);
    
        struct weapon * w;
        w = &weapon_1;
        printf("name = %s  name = %s\n",(*w).name,w->name);//w->name weapon_1.name

    首先我们先定义一个指向weapon类型的指针变量w,然后让w指向weapon_1,现在我们可以通过指向结构体变量的指针w去访问weapon_1。

    值得注意的是(*w).name可简写成w->name,它们都表示weapon_1.name。

    完整代码如下:

    #include<stdio.h>
    struct weapon{
        char name[20];
        int atk;
        int price;
    };
    
    int main()
    {
        struct weapon weapon_1 = {"weapon_name",100,200};
        printf("%s %d\n",weapon_1.name,++weapon_1.price);
    
        struct weapon * w;
        w = &weapon_1;
        printf("name = %s  name = %s\n",(*w).name,w->name);//w->name weapon_1.name
    
        return 0;
    }
    

    运行结果:

    那么结构体数组呢?

        struct weapon weapon_2[2] = {{"weapon_name1",50,100},{"weapon_name2",100,200}};
        printf("%s  %d\n",weapon_2[0].name,weapon_2[1].atk);
    
        struct weapon * p;
        p = weapon_2;//p->name weapon_2[0].name
        printf("%s\n",p->name);
        p++;//weapon_2 +1 weapon_2[1]
        printf("%s\n",p->name);

    可以注意到,“p = weapon_2”中不加“&”。“p = weapon_2”此时表示的是指针p指向的是weapon_2数组第一个元素的起始地址。

    如果我们输出p->name,实际它表示的是weapon_2[0].name。

    如果想访问weapon_2数组中第二个元素的name成员,应该如何操作?

    我们可以将p进行一个 ++的操作,则可以访问weapon_2[1].name。

    完整代码如下:

    #include<stdio.h>
    struct weapon{
        char name[20];
        int atk;
        int price;
    };
    
    int main()
    {
        struct weapon weapon_2[2] = {{"weapon_name1",50,100},{"weapon_name2",100,200}};
        printf("%s  %d\n",weapon_2[0].name,weapon_2[1].atk);
    
        struct weapon * p;
        p = weapon_2;//p->name weapon_2[0].name
        printf("%s\n",p->name);
        p++;//weapon_2 +1 weapon_2[1]
        printf("%s\n",p->name);
    
        return 0;
    }
    

    运行结果:

    展开全文
  • 如何用全局变量得到类对象的指针

    千次阅读 2008-03-15 15:29:00
    如何用全局变量得到类对象的指针?首先申请一个全局变量,注意全局...然后在类的某个public成员函数中将this指针赋值给全局变量即可。代码如下:World.h#include using namespace std;class World{ public: World(){/
  • 指针

    2021-04-30 16:13:11
    什么是指针:指针是一种地址值 什么是指针类型:指针类型是一种新的类型 格式:类型 * 常见的指针类型: int * 整形指针类型 ...给指针变量赋值: int a=10;//驾驶a的地址为0X2000 int p=&a;//
  • 指针变量如何给指针变量赋值 ( 指针变量初始化 )赋值的含义(咱是这么理解的)获取与修改地址中的元素(获取值)获取修改指针变量的增减2.指针与数组总结 前言 作为一名浑水摸鱼了两年的大三狗,在学长们都拿着自己...
  • 如何理解指针

    2019-10-03 06:03:22
    在C语言中定义一个简单变量,例如int a = 4,这个时候,就会在内存空间中开辟一个4个字节大小的空间,并且这个变量赋值为4。这里的int可以换成float、double、long都可以,只不过类型不同,会占用不同大小的内存...
  • C语言 指针

    2018-01-29 12:03:58
    给指针变量赋值;使用指针创建运算; 注意:1,指针只能指向同类型的变量,如int类型的指针只能指向int (1)如何避免野指针? 野指针指向一个已删除的对象或未申请访问受限内存区域的指针。野指针的出现主要有两...
  • 指针如何避免

    2016-09-26 20:03:32
    任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气。所以,指针变量在创建的同时应当被初始化,要么将指设为NULL,要么让它指向合法的内存。 指针释放后之后未置空 有时指针在...
  • 什么是野指针? 野指针是指随机指向一块内存的指针指针的危害? 野指针可能会造成内存泄露的危害。(注意:野指针不会一定造成内存泄露,如果该野指针指向的内存刚好...2.当想一个指针指向的空间赋值时,一定要
  • 函数指针

    2020-09-26 14:36:47
    -----含义: 函数指针是指向函数的指针变量。...2.如何给函数指针赋值: p = printwelcome;//函数名就是地址 3.如何通过函数指针调用函数: p( ) //直接通过指针名字加() 或(*p)() //取内容 (*指针名字)+() #
  • C 语言小结

    2013-06-28 23:26:25
    指针: 声明一个int 类型的指针-- int * p ; 声明一个int 类型的 变量 int a ; ...如何给 指针变量赋值 *p = 5 ; 其含义 得到a的地址 给a = 5 print(%d,a); ,5; print(o%,p); 输出的为指针值
  • (3)通过其他指针变量赋值(4)给指针变量赋空值4.开辟动态存储单元(1)new运算符(2)delete运算符(3)实例5.指针运算符(1)给p赋初值(2)怎么通过指针取 i 的值,将其赋给 j ?(3)再来一块代码(4)指针变量...
  • 如何声明一个指针变量 int p1 注意这里的p1是指针变量名,这个指针变量的类型是int ;而不是int 既然是指针变量,则可以批量声明 指针变量 赋值 int num = 10; int *p1; p1 = #或者在声明的同时这个指针...
  • null与空串的区别 1, null不占用空间,空字符串占用一定内存空间 ...4, null本身就是个对象,但它是一个不确定的对象,只能引用形变量赋值,不能基本类型赋值.(如 int a=null;是错误的)  什么
  • 4、指针

    2015-12-06 14:43:00
    4、指针 【1】怎么定义指针变量 一个变量的地址称为该变量的指针;...变量的指针的含义包括两个方面,一是以存储单元编号表示的...指针变量只能存放地址(指针),不要将一个整数赋值给指针变量。 *po...
  • 类的成员变量存储在每个类对象中(每个对象一份),成员函数存储在代码段中(所有的对象共享一份),那么成员函数是如何区分调用它的是哪个对象? 答:与C语言的解决方案一样,把对象的地址传递成员函数,这样成员函数...
  • c语言之——指针(一)

    2019-08-22 17:06:55
    一、指针是什么? 指针的实质就是个变量,指针完整的名字应该叫指针变量,简称为指针。指针变量是用来存放内存地址的。 二、如何使用指针?...将整形变量i的地址赋值给指针变量p,我们称作p指向i; ...
  • 输入和输出的函数定义的形参为整形指针类型变量而不是返回值(void)2.fun()函数定义:定义两个数组(数组长度在主函数中定义并且使用的也是主函数中定义的函数),在功能函数中,现将a[]错位后的情况赋b[](用for循环)...
  • 指针的范例

    2016-11-08 13:11:41
    把变量的地址赋值给指针,通过指针访问值#include <stdio.h>int main() { int x, y; //声明变量 int *p1 = NULL;//声明并初始化指针 int *p2 = NULL; x = 20;//给变量赋值 y = 30; p1 = &x;//把变量
  • 11.第十一章 指针.txt

    2019-11-08 16:31:43
    (3)赋值运算符=,给指针变量赋值。 (4)算术运算符+、-、++、-- p1+i:结果为p1地址值位置跳过(i*p1所指类型字节数)个字节后的地址。 p1-i:结果为p1地址值位置跳回(i*p1所指类型字节数)个字节后的地址。 p2...
  • 如何取地赋值给指针变量——&取地运算符3.数组名4.指针的类型 指针 内存空间的访问方式 1.变量什么时候被分配内存空间 (1)具有静态生存期的变量在程序开始运行之前就已经被分配了内存空间。 (2)具有动...
  • C/C++高级训练之指针初识 什么是指针? 指针就是变量,跟 int,double,string 等一样都是变量。 指针的不同之处在于它比较特殊,指向内存...// NULL 给变量赋值 指针的赋值 1.初始化的时候就进行赋值 int *p = NULL; in
  • C++指针

    2021-01-04 16:21:06
    指针变量里存放地址,地址里的内容是真正的数据 1. 指针概念 int i=30; char a='t'; int* pi; 指针也是变量 在32位系统中,指针的宽度是4字节宽(32bit) pi = &i; 把i地址的编号赋值给pi cout<<*pi;/...
  • C语言 函数指针

    2021-03-26 15:52:43
    如何给函数赋值 void (*p2)(); p2 = printWelcome;//函数就是地址,就像数组一样,数组名就是地址 如何通过函数指针调用函数 p2(); //直接通过指针名字+() (*p2)() ; //取内容 (**指针名字)() 例子: #include &...
  • 本例是把A类的对象a的成员变量“m_betransed”的值赋B类的对象b的成员变量“m_...B类构造公共函数——void getvariate(int * t_variate ),”m_getvariate”赋值。 2.创建对象,然后调用公共函数,完成变量值的传

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 291
精华内容 116
关键字:

如何给指针变量赋值