精华内容
下载资源
问答
  • C语言指针相互赋值
    千次阅读
    2020-12-22 17:04:34

    C语言指针相互赋值

    首先要记住指针变量和其他普通变量一样,使用前不仅要定义,还要进行赋值。未经赋值的指针变量不能使用,否则将会造成系统混乱,甚至死机。指针变量的赋值只能赋予地址

    例如:

    #include <cstdio>
    void swap(int *p1,int *p2){
    int *temp;
        *temp=*p1;//此语句有问题,因指针变量temp定义后未具体指向,所以*temp无意义。
        *p1=*p2;
        *p2=*temp;
    ​
    }
    int main(){
        int a,b;
        scanf("%d%d",&a,&b);
        int *pp1,*pp2;
        pp1=&a;pp2=&b;
        swap(pp1,pp2);
        printf("%d%d",*pp1,*pp2);
    }
     

    这个程序是错误的,无法实现a,b值交换。

    应改为

    #include <cstdio>
    void swap(int *p1,int *p2){
    int temp;
        temp=*p1;//此语句有问题,因指针变量temp定义后未具体指向,所以*temp无意义。
        *p1=*p2;
        *p2=temp;
    ​
    }
    int main(){
        int a,b;
        scanf("%d%d",&a,&b);
        int *pp1,*pp2;
        pp1=&a;pp2=&b;
        swap(pp1,pp2);
        printf("%d%d",*pp1,*pp2);
    }
    ​

     

    更多相关内容
  • // describe: 非虚函数情况下,将子类指针赋给积累指针,验证最终调用 // 基类函数还是子类函数。 //============================================================== #ifndef ANIMAL_H #define ANIMAL_H //======...
  • // describe: 非虚函数情况下,将子类指针赋给积累指针,验证最终调用 // 基类函数还是子类函数。 //============================================================== #ifndef ANIMAL_H #define ANIMAL_H //======...
  • 满意答案 jokxhq 2013.08.24 采纳率:59% 等级:12 已帮助:9720人 #include #include char find_char( ... //这里返回的是字符,所以函数返回类型改为char break; } } } return '\0'; //默认也要返回 } 00分享举报

    满意答案

    00e27ab806e4881f8254fe7ae8741834.png

    jokxhq

    2013.08.24

    00e27ab806e4881f8254fe7ae8741834.png

    采纳率:59%    等级:12

    已帮助:9720人

    #include

    #include

    char find_char( char const *source, char const *chars );

    int main()

    {

    char source[100]={'\0'}, chars[100]={'\0'}, find_;

    printf("Please input source and chars.\n");

    gets(source);//用gets函数输入一行字符,保存在数组source中

    gets(chars); //用gets函数输入一行字符,保存在数组chars中

    find_=find_char(source,chars);

    if(find_=='\0')

    printf("not found.");

    else

    printf("%c", find_);

    printf("\nend of program\n");

    getch(); //要包含头文件 conio.h

    return 0;

    }

    /*find_char:查找source串中是否含有chars中的任意字符,

    是则返回具体是哪个字符,否则返回'\0'*/

    char find_char( char const *source, char const *chars)

    {

    int i, j;

    for(i=0; source[i]!='\0'; i++){

    for(j=0; chars[j]!='\0'; j++){

    if(source[i] == chars[j]){

    return source[i]; //这里返回的是字符,所以函数返回类型改为char

    break;

    }

    }

    }

    return '\0'; //默认也要返回

    }

    00分享举报

    展开全文
  • int *p, *q; p=q; 这样写是什么意思?是p指向q吗?
  • const类型指针与普通指针相互赋值

    千次阅读 2015-04-17 00:34:32
    1、将const char *p1赋给char *p2 在c语言条件下是警告,c++下面是报错...总结:说明只能条件越来越严格,不能条件越来越松(除非强制类型转换如:char *p1;const char *p2;p1=(char*)p2;)。 char *const p1赋
    1、将const char *p1赋给char *p2


    在c语言条件下是警告,c++下面是报错。

    2将char *p1赋给const char *p2
    均编译通过。

    总结:说明只能条件越来越严格,不能条件越来越松(除非强制类型转换如:char *p1;const char *p2;p1=(char*)p2;)。
    char *const  p1赋给char *p2情况类似

    备注:当然此处只是讨论指针,如果是变量只是单纯的赋值关系,互不影响
    展开全文
  • 今天梳理下golang中结构体的赋值指针以及获取成员变量方式

    一 实例

    func main(){
        type Person struct {
            name  string
            age int
        }
        p1 := &Person{name: "wbw", age: 18}
        fmt.Println((*p1).name)
        fmt.Println(p1.name) //隐式解引用
    
        p2 := Person{name: "wbw", age: 18}
        fmt.Println(p2.name)
    
        p3 := p1
        fmt.Println(p3.name)
        p4 := p2
        fmt.Println(p4.name)
    
        p3.name = "sdfsd"
        fmt.Println((*p1).name)
        fmt.Println(p1.name)
        fmt.Println(p3.name)
    
        p4.name = "sdfsdss"
        fmt.Println(p2.name)
        fmt.Println(p4.name)
    
    
    }

    二 总结

    • 当结构体原型(p1)获取的是结构体指针,那么当它给另一个成员赋值(p3)时,p3的改动会导致p1同时改动。就是说此时p1, p3共同指向一个结构体地址
    • 当结构体原型(p2)获取的只是普通结构体时,那么当它给另一个成员赋值(p4)时,p4的改动不会导致p2的改动。就是说此时p2,p4不是指向同一个结构体地址
    • 当结构体原型(p1)获取的是结构体指针,那么它可以用指针获取成员变量((*p1).name),也可以使用隐式解引用(p1.name即可获取成员变量)。
     
    

    展开全文
  • 两个指针变量之间可以相互赋值,p和q都是int类型指针。 p=q表示将q所指向的int类型变量的地址赋给p 2.两个都是指针,所以是p的值等于q 如果p不是指针,那么p=q是p等于q指向的值 3.可以这样写,前提好像是q有确定的...
  • 来声明一个指针类型的变量试试,如下所示: var sp *string 发现也是可以的,但是它同样没有被初始化,所以它的值是 *string 类型的零值,也就是 nil。 2. 变量初始化 变量可以通过 = 运算符赋值,也就是修改变量的...
  • 指针变量的赋值指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,...
  • } } 警报如下: test.c:21: 警告: 赋值时将指针赋给整数,未作类型转换 test.c:22: 警告: 赋值时将指针赋给整数,未作类型转换 test.c:23: 警告: 赋值时将指针赋给整数,未作类型转换 test.c:24: 警告: 赋值时将...
  • C++不同类型数值变量之间的相互赋值,可以用以下的伪代码来描述:type1 a = ?; type2 b = ?; b = a; 或 b = (type2)a;示例:short a = 0xFF00; unsigned int b = a; cout ; cout ; cout ;一、if (sizeof(a) == siz
  • 基类指针和子类指针相互赋值

    万次阅读 2012-06-30 19:45:13
    首先,给出基类animal和子类fish //============================================================== // animal.h // ...// describe: 非虚函数情况下,将子类指针赋给积累指针,验证最终调用 //
  • c 不同类型指针

    2017-05-25 16:41:00
    今天看到了一个问题:c里面,不同类型指针是否可以互指呢?也就是不同类型指针之间是否可以互相赋值,我想了想,对于32位机子而言,所有类型指针都是4Byte(64位...既然如此,理应可以相互赋值啊,于是好奇地...
  • 字符指针赋值、传值

    千次阅读 2019-05-13 11:44:58
    1.先来理解一下指针的初始化及赋值 int main() { char *a; cout<<"please input the plaintext"<<endl; cin>>a; cout<<a; } a=...是给a赋值 *a=...是给a指向的内存赋值 上述...
  • C语言指针赋值

    千次阅读 2017-01-07 23:13:01
    1、指针的初始化 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值...
  • pn是int * 类型的,pc是char * 类型的,类型不匹配,如果一定要使用,必须要使用强制类型转换,将类型转换成一样,才能进行互相赋值。 (2) pn = &amp;c c是char类型的,&amp;c是对c取地址,&amp;c是...
  • 指针变量的赋值指针变量同普通变量一样,使用之前不仅要定义说明, 而且必须赋予具体的值。未经赋值指针变量不能使用, 否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址, 决不能赋予任何其它数据,...
  • OpenCV Mat与uchar*指针相互转换赋值

    千次阅读 2020-09-15 16:08:36
    将uchar*数组内容赋值到OpenCV Mat中时,可以利用如下操作完成转换: uchar* data = [...]; Mat src(rect_height, rect_width, CV_8UC1, data);//为了显示图片 先改为mat类型 imshow("image", src); waitKey(0); ...
  • 两个指针之间的赋值是地址的赋值,即将一个指针的指向的地址赋给另一个指针 ,虽然赋值后两个指针指向地址中的值肯定也相同,那是因为两个指针都指向同一个地址了,同一个地址中的值能不相同吗。 2, 如果两个...
  • 一、数据类型封装、 二、作为 参数 或 返回值 代表无、 三、void* 指针赋值与被赋值、 四、void 类型变量不存在、
  • 如果包含指针赋值只能实现浅拷贝。被赋值的结构体变量的指针成员与原结构体变量的指针成员指向一个地址。 C/C++ code #include &lt;stdio.h&gt; struct s { int i; char c; void* p; }; ...
  • 前面的文章已经提出了一个关键...(其中 T表示指针指向的具体数据类型)的定义位于<memory>头文件,并位于 std 命名空间中。 所以需要在使用前包含: #include <memory> 1、shared_ptr的初始化 a. 通过如
  • C语言指针的初始化和赋值

    千次阅读 多人点赞 2021-01-14 20:14:11
    1、指针的初始化 指针初始化时,“=”的右操作数必须为内存中数据的地址,不能够是变量,也不能够直接用整型地址值(可是int*p=0;除外,该语句表示指针为空)。此时,*p仅仅是表示定义的是个指针变量,并没有间接取值...
  • 1、指针赋值 当声明一个指针后没有对其赋初值,指针变量没有存储确定的地址,而是一个随机整数。如果这时引用它所指的值可能会发生意想不到的问题(如修改了它指向系统重要数据)。所以我们要先赋值再引用。 ...
  • 深入理解C语言指针

    万次阅读 多人点赞 2019-09-28 08:36:51
    一、指针的概念 要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。...这段代码非常简单,就是两个变量的声明,分别赋值了 10、20。我们把内存当做一个酒店,而每个房间就...
  • void类型及其类型指针

    2020-04-19 21:00:04
    指针有两个属性:指向变量/对象的地址和长度  但是指针只存储地址,长度则取决于指针类型  编译器根据指针类型指针指向的地址向后寻址  指针类型不同则寻址范围...
  • C语言---指针变量的赋值与运算

    千次阅读 2019-09-18 16:17:25
    指针变量的赋值 指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值指针变量不能使用,否则将造成系统混乱,甚至死机。指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起...
  • 指针间的互相赋值

    2019-07-30 14:52:00
    大标题1提出权限“概念”,大标题2验证赋值规则 大标题3、4、5是我的个人理解。 大标题6是最直接的结论。 提醒 看懂这篇文章可能需要你知道并理解四种指针的定义,这是基础。当然如果真的不懂,可以直接去文尾记住...
  • C++指针之间的赋值与转换规则总结

    千次阅读 2014-01-17 16:34:43
    一、任何类型指针变量均可直接赋值给const void *  任何类型的非const指针变量均可直接赋值给void *  const指针变量不可直接赋值给void *,除非通过强制类型转换 class A { }; typedef int (*pFun)(string);...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 56,860
精华内容 22,744
关键字:

不同类型指针相互赋值

友情链接: QT-LINE.rar