相关疑难解决方法(0)


const char*VS char const*const(不是什么是const)

所以,我知道char const*,char*const和char const*const之间的区别.那些是:

char*the_string:我可以更改the_string指向的char,我可以修改它指向的char.

const char*the_string:我可以更改the_string指向的char,但是我无法修改它指向的char.

char*const the_string:我无法更改the_string指向的char,但我可以修改它指向的char.

const char*const the_string:我不能更改the_string指向的char,也不能修改它指向的char.

(来自const char*const与const char*?)

现在,我的问题是:假设我正在编写一个不会修改传递给它的C字符串的函数,例如:

int countA(??? string) {
    int count = 0;
    int i;
    for (i=0; i<strlen(string); i++) {
         if (string[i] == 'A') count++;
    }
    return count;
}
Run Code Online (Sandbox Code Playgroud)

现在,标题应该是什么?

int countA(char const * string); 
int countA(char const * const string);
Run Code Online (Sandbox Code Playgroud)

我的感觉是我应该使用第二个,因为我不会修改指针本身,也不会修改数组的内容.但是,当我查看标准函数的标题时,他们使用第一个.例

char * strcpy ( char * destination, const char * source );
Run Code Online (Sandbox Code Playgroud)

为什么?

(事实上char const *对我来说没有意义,因为如果你正在考虑抽象字符串,要么你没有修改字符串(所以,char const * const因为你没有修改指针,也没有修改内容)或者你将修改string(所以只是char *因为你可以修改内容,你可能需要分配更多的内存,所以你可能需要修改指针) …

c string const

12
推荐指数
2
解决办法
8217
查看次数

const char*,char const*,const char const*&string storage之间的区别

首先,它们之间的区别是什么:

(1) const char*
(2) char const*
(3) const char const*
Run Code Online (Sandbox Code Playgroud)

我相当肯定我完全理解这一点,但我希望有人给我一个句子,特别是,所以它坚持我的头脑.这是我很好的事情之一,直到有人把我放在现场,然后它变得模糊!

另外,编译器如何存储字符串文字?这不是家庭作业,我只是在C上面试,以防万一有人关心.

c++ string

11
推荐指数
4
解决办法
1万
查看次数

char const *const *const varName

我有一个具有以下签名的方法:

size_t advanceToNextRuleEntryRelatedIndex( size_t index, size_t nStrings, char const *const *const strings)
Run Code Online (Sandbox Code Playgroud)

我该如何解释这个:char const *const *const strings

谢谢,帕万。

c pointers

4
推荐指数
1
解决办法
4285
查看次数

为什么不strlen(..)期望const char*const str而不是const char*

我正在读这个:const char*const与const char*?

string.h,strlen定义为:

size_t strlen ( const char * str );
Run Code Online (Sandbox Code Playgroud)

如果我理解正确,strlen需要一个指向const的char的指针.不应该是:

size_t strlen ( const char* const str );
Run Code Online (Sandbox Code Playgroud)

这样可以确保strlen不能修改指针指向不同的指针吗?

或者,是这样的情况:

由于str指针将通过值传递给strlen,因此函数中对此指针的任何更改都不会更改源指针,因此它没关系..

??

c++ string

2
推荐指数
1
解决办法
3476
查看次数

(const char * str),(char const * str)和(char * const str)有什么区别?

可能的重复:
char * const和const char *有什么区别?
const char * const vs const char *?

当我们在c中定义一个函数时,我们可以使用(const char * str),(char const * str)或(char * const str)作为变量。它们之间有什么区别?

c pointers const

2
推荐指数
3
解决办法
1万
查看次数

'char const * const c =“”是什么意思

char const*const variablename = " ";
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

与指针声明相同吗?

请任何人解释。

先感谢您!

c pointers const variable-declaration

2
推荐指数
1
解决办法
2321
查看次数

是指针数组吗?

这是我无法理解的代码:

char* myPtr = "example";
myPtr[1] = 'x';
Run Code Online (Sandbox Code Playgroud)

我如何被允许使用myPtr[1]?为什么我可以选择像数组一样的位置?myPtr甚至不是一个阵列.

OBS.我知道查找表,文字池和字符串文字,我关心的是这甚至编译.我没有那么多使用指针.

有人可以帮忙吗?

c c++ arrays pointers

2
推荐指数
1
解决办法
247
查看次数

错误:无法将'p1'从'Person(*)()'转换为'Person'

我明白了

error: could not convert 'p1' from 'Person (*)()' to 'Person'
Run Code Online (Sandbox Code Playgroud)

每当我使用默认构造函数时(当我创建Person p1时),我知道这是因为我使用的是char数组,但我必须使用它,我不能使用字符串

我也收到了2个警告

warning: converting to non-pointer type 'char' from NULL [-Wconversion-null]|
Run Code Online (Sandbox Code Playgroud)

在默认构造函数中

warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]| 
Run Code Online (Sandbox Code Playgroud)

当我创建Person p2时

所以这是我的代码

#include <iostream>
#include <string>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

class Person{
   private:
    char* name;
    char gender;
    int age;
   public:
    Person();
    Person(char*, char, int);
    friend void printInfo(Person);
};

Person::Person()
:name(NULL), gender(NULL), age(0) // this results in the first warning
{
}
Person::Person(char* n, …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
857
查看次数

变量陷入If

我正在尝试学习C++,而我正在创建一些无用的应用程序来测试.我正在使用const char和参数,在这段代码中我无法获得标题字符串.

const char* title = "";
if (argc >= 3) {
    string tittle(argv[2]);
    title = tittle.c_str();
}
Run Code Online (Sandbox Code Playgroud)

请帮我!

c++ string if-statement const char

0
推荐指数
1
解决办法
47
查看次数

标签 统计

c ×6

c++ ×5

const ×5

pointers ×5

string ×4

arrays ×1

char ×1

if-statement ×1

variable-declaration ×1