我试图理解C中的指针,但我目前对以下内容感到困惑:
char *p = "hello"
Run Code Online (Sandbox Code Playgroud)
这是一个指向字符数组的char指针,从h开始.
char p[] = "hello"
Run Code Online (Sandbox Code Playgroud)
这是一个存储hello的数组.
将这两个变量都传递给这个函数有什么区别?
void printSomething(char *p)
{
printf("p: %s",p);
}
Run Code Online (Sandbox Code Playgroud) 这就是我在foo.php中所拥有的
class Foo
{
public $foo = NULL;
public $foo2 = NULL;
public function setFoo ($foo, $foo2)
{
$this->foo = $foo;
$this->foo2 = $foo2'
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我在foo3.php中所拥有的
class Foo3 extends Foo
{
public $foo3 = NULL;
public function setFoo3 ($foo3)
{
$this->foo = $foo3;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我在第三个文件run.php中需要的方法:
require_once "foo.php";
require_once "foo3.php";
$foo = new Foo();
$foo->setFoo3("hello");
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
致命错误:调用未定义的方法Foo :: setFoo3()
我不确定问题是我是如何要求他们的.谢谢.
下面的指针初始化有什么区别?
char array_thing[10];
char *char_pointer;
Run Code Online (Sandbox Code Playgroud)
以下初始化有什么区别?
1.) char_pointer = array_thing;
2.) char_pointer = &array_thing
Run Code Online (Sandbox Code Playgroud)
第二次初始化是否有效?
每次发生重复变量时,我都会尝试增加$ variable的值.我不确定这在语法上是否正确,但我认为这在语义上是正确的.var_dump似乎吐出正确的输出,但我得到这个错误:注意:未定义的索引...
$newarray = array();
foreach ($array as $variable)
{
$newarray[$variable]++;
var_dump($newarray);
}
Run Code Online (Sandbox Code Playgroud)
$ array =(0 => h,1 => e,2 => l,3 => 1,4 => o);
目标:
'h' => int 1
'e' => int 1
'l' => int 2
'o' => int 1
Run Code Online (Sandbox Code Playgroud)
我的代码有效,只是我收到了一些奇怪的通知.
我试图了解结构如何在C中工作.我熟悉Java中的构造函数.现在,我有一个使用结构在C中创建树的示例.
struct a_tree_node{
int value;
struct a_tree_node *leftPTR, *rightPTR;
};
Run Code Online (Sandbox Code Playgroud)
我目前正试图想象它是如何工作的,我有点困惑,因为这个结构包含自己.
我目前正在尝试C,我很难理解如何在函数中使用指针.我理解当我初始化指针然后取消引用它时发生了什么,但是,当我必须在函数中使用它们时,我有点困惑,如下所示:
我这里有三个功能,但我不确切知道何时使用哪个功能.我还是比较新的C.
int returnSomething(int a, int b)
int returnSomething(int *ptrA, int *ptrB)
int* returnSomething(int *ptrA, int *ptrB);
Run Code Online (Sandbox Code Playgroud)
编辑:
三者之间有很大的不同吗?
我正在尝试学习C中的指针,但是它与以下概念混淆:
char *string = "hello"
char *string2;
Run Code Online (Sandbox Code Playgroud)
以下是什么主要区别:
A.) *string2 = string;
Run Code Online (Sandbox Code Playgroud)
然后
B.) string2 = "bye";
Run Code Online (Sandbox Code Playgroud)