精华内容
下载资源
问答
  • 1、“+”: 不能添加两个指针 。 2、且表达式必须具有整数或未区分范围的枚举类型。 源码如下: int i=0; sprintf_s(image_name, "%s%d%s", "image", i, ".jpg"); cv::imwrite("C:\\Users\\admin\\Desktop\\...

    1、“+”: 不能添加两个指针 。

    2、且表达式必须具有整数或未区分范围的枚举类型。

     

    源码如下:

    int i=0;
    sprintf_s(image_name, "%s%d%s", "image", i, ".jpg");
    cv::imwrite("C:\\Users\\admin\\Desktop\\newimages\\" +image_name, frame);

    这两个错误,是因为:

    1、字符串常量就是指针,C++用指针表达字符串常量。

    2、i是int类型的,而其他“image”和“.jpg”是string类型的,类型相同才能相加。

    如下修改就好了:

    int i=0;
    sprintf_s(image_name, "%s%d%s", "image", i, ".jpg");
    std::string str(image_name);
    		
    cv::imwrite("C:\\Users\\admin\\Desktop\\newimages\\" +image_name, frame);

    整体源码是opencv截取视频帧并保存为图片。

    #include <stdio.h>
    #include <string>
    #include <iostream>
    #include <io.h>
    #include <fstream>
    #include <vector>
    #include <opencv2/opencv.hpp>
    
    using namespace std;
    using namespace cv;
    
    int main()
    {
    	VideoCapture capture("C:\\Users\\admin\\Desktop\\1.mp4");
    	int i = 0;
    	//std::string image_name;
    	char image_name[20];
    	while (1)
    	{
    		Mat frame;
    		capture >> frame;
    		imshow("dqsp", frame);
    
    		//转换格式
    		sprintf_s(image_name, "%s%d%s", "image", i, ".jpg");
    		std::string str(image_name);
    		
    		cv::imwrite("C:\\Users\\admin\\Desktop\\newimages\\" + str, frame);
    		waitKey(30);
    		i++;
    	}
    	return 0;
    }

     

     

    展开全文
  • error C2110: “+”: 不能添加两个指针

    千次阅读 2018-03-26 23:38:55
    VS2010 CString 很正常的操作,突然报出的错误,反复查看了代码,没发现任何问题,只能一点一点排除,费了较长的时间,终于发现了问题的所在,故记录下来,希望对遇到同样问题的人提供一下指导,少走弯路(实际这...

            VS2010 CString 很正常的操作,突然报出< error C2110: “+”: 不能添加两个指针 >的错误,反复查看了代码,没发现任何问题,只能一点一点排除,费了较长的时间,终于发现了问题的所在,故记录下来,希望能对遇到同样问题的人提供一下指导,少走弯路(实际这是毫无必要的路)。

    问题代码(截图如下:)


    不仔细调很难发现问题。


    正常代码(截图如下:)



    发现两者的区别了吗?


    问题出现在红色区域标记处


    问题就是一个连续的_T(" ")中的内容要写在一起,不能分成两部分用 + 连接,很多时候很容易忽略,问题不熟悉,也很难发现问题。

    感兴趣的可以自己编个小程序试一下。

    可能说的不是很专业,但自己确实这样修改后把问题解决了,有更专业的建议,希望留言指出。




    版权声明:本文为博主原创文章,转载请注明出处。


    展开全文
  • char* ,char* char* str1 = "Hello"; char*str2 = "World"; //方式一 ... //两个Char类型的字符串拼接 //方式二 //char str3[20]; sprintf(str3,"%s%s",str1,str2); //将各种类型格式化到字符串 s...

    char* ,char*
        char* str1 = "Hello";
        char*str2 = "World";
        //方式一
        char str3[20];
        strcpy(str3, str1);
        strcat(str3, str2);   //两个Char类型的字符串拼接
        
        //方式二
        //char str3[20];
        sprintf(str3,"%s%s",str1,str2);   //将各种类型格式化到字符串
        

    string,string

       string str1= "Hello";
       string str2 = "World"; 

       string str3 =str1+str2;

    char*, string

       char* str1 = "Hello";
       string str2 = "World";

       string str3=str1;

       str3=str3+str1;
     

    展开全文
  • 两个指针变量可可以相减?

    千次阅读 2019-08-26 20:15:59
    遇到一道题,问:两个指针变量可可以相减? 答案是:可以 以前只写过 “指针±整数”,比如数组方面的,两个指针的运算还是第一次碰。 《C和指针》里说: 只有当两个指针都指向同一个数组中的元素时,才允许从一...

    遇到一道题,问:两个指针变量可不可以相减?

    答案是:可以

    以前只写过 “指针±整数”,比如数组方面的,两个指针的运算还是第一次碰。

    《C和指针》里说:

    只有当两个指针都指向同一个数组中的元素时,才允许从一个指针减去另一个指针。

    ​两个指针相减的结果的类型是ptrdiff_t,它是一种有符号整数类型。减法运算的值是两个指针在内存中的距离(以数组元素的长度为单位,而不是以字节为单位),因为减法运算的结果将除以数组元素类型的长度。例如,如果p1指向array[i],而p2指向array[j],那么p2-p1的值就是j-i的值。

    假定数组元素的类型为float,每个元素占4个字节的内存空间。如果数组的起始位置为1000,p1的值是1004,p2的值是1024,但表达式p2-p1的结果将是5,因为两个指针的差值(20)将除以每个元素的长度(4)。

    如果两个指针所指向的不是同一个数组中的元素,那么他们之间相减的结果是未定义的。就像如果你把两个位于不同街道的房子的门牌号码相减,不可能得到 这两所房子间的房子数一样。程序员无从知道两个数组在内存中的相对位置,如果不知道这一点,两个指针之间的距离就毫无意义

    其实,指针相减的条件不一定非得指向同一个数组中的元素,可能是编译器的原因,下面这段代码可以更好得看清两个指针相减的情况。

    #include <stdio.h>
    
    int main()
    {
    	int a = 10000;   //整型变量a
    	char c = 't';    //字符型变量c
    
    	int *p1 = &a;    //整型指针p1指向a
    	char *p2 = &c;   //字符型指针p2指向c
    
    	ptrdiff_t num1 = p2 - p1;   //ptrdiff_t型变量num1
    	int num2 = p1 - p2;         //int变量num2,ptrdiff_t也是有符号整型,用两个类型声明变量来观察两者的异同
    
    	printf("&a= %d\n", &a);
    	printf("&c= %d\n", &c);
    	printf("p1= %x\n", p1);
    	printf("p2= %x\n", p2);
    	printf("num1=%d, num2=%d\n", num1, num2);
    
    }
    

    VS2017运行结果:
    在这里插入图片描述
    每次运行时,变量a、c的地址常常会变,但它们的差值,也就是num1、num2的值不变。

    比如这次运行时,a的地址p1是9632172,c的地址p2是9632163。

    p2-p1的值是-9,正好是两个地址相差9个字节

    p1-p2的值是2,结果应该是9,但是被减数p1指向的变量a是int型,占4个字节,9除以4取整等于2。

    同理,p2-p1时,p2指向的变量c是字符型,占1个字节,-9除以1取整等于-9.

    但是指针的加、乘、除编译都不通过。

    展开全文
  • 考虑如下问题: 1 char a[20]; 2 int *ptr = (int *)a; ...第3句ptr++实际为ptr右移一int空间(即4字节)的距离,此时ptr指向a...这里说明当指针加整数时,指针向后偏移的距离看的是声明该指针的类型(此处即i
  • 两个指针变量可以做什么

    千次阅读 2013-10-02 15:15:12
    两个指针变量可以做什么 A: B:减 C:比较 D:指向同一地址 解析: 编译器禁止内建指针进行加法运算,因为那是无意义的:如果作为整数相加,无法找到结果的有效语义。 指针减法的结果表示相隔元素数。 ...
  • 两个指针之间的运算

    千次阅读 2018-07-23 10:28:27
    指针变量相减所得之差是俩个指针所指数组之间相差的元素个数。实际上是俩个指针值(地址)相减之差再除以该数组元素的长度(字节数)  注意:因为俩个指针相加没有任何意义,所以别乱搞。 int* pf1, *pf2;  int...
  • 深入理解C语言指针

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

    千次阅读 2016-11-19 21:06:23
    (1)给指针加上或减去某整数值,结果仍是指针。新指针指向的元素与原来的指针相比前进(后退)了该整数值个位置 ...(2)两个指针相减的结果是它们之间的距离,参与运算的两个指针必须指向同一个数组当中
  • c/c++两个指针变量地址的相减

    千次阅读 2019-01-11 21:37:28
       c、c++两个指针变量的相减,需要注意两个变量的数据类型。   如下例程: #include "stdio.h" #include "string.h" using namespace std; #define uint8_t unsigned char #define uint16...
  • 两个指针变量可以进行的运算”

    千次阅读 2019-08-06 09:28:50
    两个指针变量可以(A) 提供了四个选项:A.相加 B.比较 C.相减 D.指向同一地址。牛客网给出的答案A。 分析以及知识点回顾 指针变量保存的是地址,而地址本质上是一个整数,所以指针变量可以进行部分运算,例如...
  • 两个指针变量的减法

    千次阅读 2016-11-29 22:33:13
    两个指针变量分别指向数组连续内存地址的不同变量,让它们想减可以得到两个指针变量间存在的元素个数; 上面 int *iptr1 指向第一个元素, int *iptr2 指向第二个元素,两个变量想减结果为 1,因为两个连续位置...
  • 两个指针(位置)的妙用

    千次阅读 2012-04-01 11:12:26
    使用两个指针可以轻松的解决许多算法问题,归纳出如下几种 1、 判断链表是否带环 带环链表的判断是链表中经常考察的内容。一个循环链表可以无休止地遍历下去。我们可以定义两个指针,一个快指针一个慢指针,如果在...
  • // // main.c // Function_pointer // // Created by mac on 15/8/2. ...// 要求:将函数指针做参数来求两个整数的和、差、积、商。 //知识点:函数指针就是一个指向函数的指针,通过指针指向要调...
  • // // main.c // Function_pointer // // Created by mac on 15/8/2. ...// 要求:通过函数指针两个整数的和、差、积、商。 //知识点:函数指针就是一个指向函数的指针,通过指针指向要调用的函...
  • 常见的字符串操作非常多,但是如上几个题目有一个共同的特点:那就是使用两个指针就可以搞定这类型的题目。对于第一题和最后一题,是通过数组下标来标识位置的,我们也完全可以使用一个指针来标识,就像中间的两类型...
  • 【注意】地址0不能访问。 空指针:内容为0的指针(因为空指针里面不放置内容);或者是地址为0的指针。 NULL实际上就是整数0。NULL可以用来代表空指针。 int * p2 = 0; 表示p2指向地址0。  不能写*pn = 。...
  • 指针

    万次阅读 多人点赞 2019-07-28 22:08:42
    目录 一、指针变量的定义和使用 1.定义指针变量 2.通过指针变量取得数据 ... 假设 p 是指向数组 arr 中第 n 元素的指针,那么 *p++、*++p、(*p)++ 分别是什么意思呢? 四、字符串指针(指向字符串的指针) ...
  • 为什么不能用二级指针直接指向二维数组

    万次阅读 多人点赞 2016-10-09 11:37:17
    //编译出错,不能用二级指针直接指向二维数组int (*p)[3]=a;//对,p是指向一维数组的指针,可以指向二维数组int *p1=a[0];//可以,p1也是一维指针,可以指向二维数组可以将上述的代码自己上机试试。按理说一维数组...
  • C语言:使用指针连接两个字符串

    千次阅读 2019-05-11 10:02:55
    程序运行结果如下: ... printf("第一字符串是%s\n", str1); printf("第二字符串是%s\n", str2); Connect(str1, str2, p); printf("拼接后的字符串为%s\n", p); system("pause"); return 0; }
  • 今天小面就分享一下用指针连接字符数组的写法,代码如下: **#include&lt;stdio.h&gt; int main(){ char a[20] = { 0 }, b[20] = { 0 }; char *q = a, *p = b; printf("请输入第一串数字...
  • 已知指针ha和hb分别指向两个单链表的头结点,并且已知两个链表的长度分别为m和n。试写一算法将这两个链表连接在一起,假设指针hc指向连接后的链表的头结点,并要求算法以尽可能短的时间完成连接运算。请分析你的算法...
  • 指针算术

    2020-07-18 01:50:29
    指针可以加上或减去一个整数。指针的这种运算的意义和通常的数值的减运算的意义是一样的。...指针的相减将得到一个整数,仅当两个指针指向同一个数组时这种运算才有意义,这将得到两个元素的间隔。
  • 指针函数和函数指针

    万次阅读 多人点赞 2019-03-30 16:21:36
    很多人因为搞清这两个概念,干脆就避而远之,我刚接触C语言的时候对这两个概念也比较模糊,特别是当指针函数、函数指针、函数指针变量、函数指针数组放在一块的时候,把强迫症的人活活逼疯。 其实如果理解了这些...
  • 懂函数指针指针函数?看完这篇文章就

    千次阅读 多人点赞 2020-03-20 15:52:02
    前言 当学习数组指针与指针数组的时候很是让人头疼,到底是数组还是指针?深入学习到函数的时候发现既然有函数...简单的来说,其本质是一个指针,而该指针指向一个函数。总结来说就是:指向函数的指针 函数指针的声...
  • 两个字符串相加用指针实现

    千次阅读 2013-03-29 08:34:38
    char *p1,*p2;  char a[20]="I am" ; char b[20]=" studen";  p1 =a; p2 =b;  cout  while(*p1!='\0')  {  p1++;  cout  }  while(*p2!='\0')  {
  • 例如: float **ip; 这个是一个指向实型数据的指针的变量。...都的区别就在于,**ip是一个指针指向一个实型数据的指针;而*ip则是指向一个实型数据的变量。 转载于:https://www.cnblogs.com/Hthree/archive/20...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 687,115
精华内容 274,846
关键字:

不能添加两个指针