char *str = "hello";
在这样的代码中,我可以制作另一个指针 (例如,
char *strptr = NULL;
并将其指向String str," hello"? (像这样: strptr-> str->"你好" 或 strptr->"你好"< -str )
我尝试了双指针,或更改了指针类型..但都失败了
答案 0 :(得分:3)
是的,2个指针确实可以指向相同的数字。
const char *a = "str";
const char *b = a;
他们现在指向相同的字符串。
答案 1 :(得分:1)
char * str = "hello";
你现在想要第二个指针就像第一个指针一样。所以声明它就像第一个char * strptr
。
现在也应该指出同样的事情。那你怎么做的?你怎么做一些与A相同类型的东西B,它拥有与A相同的信息?
你分配它。
char * strptr = str;
请注意,str
和strptr
目前都指向只读内存,因此可能为const
。 (除非你真的知道自己在做什么,并希望稍后使用指针指向别的东西。)
答案 2 :(得分:1)
问题的另一部分:
Public Sub testSub(ByVal pUser As String)
Dim db As DAO.Database
Dim qdf As DAO.QueryDef
Dim sqlstr As String
sqlstr = "UPDATE tTable1 SET Field1 = [which_user] WHERE Field1 IS NULL;"
Set db = CurrentDb
Set qdf = db.CreateQueryDef(vbNullString, sqlstr)
qdf.Parameters("which_user").Value = pUser
qdf.Execute sqlstr, dbFailOnError
End Sub
答案 3 :(得分:1)
你可以做到
char *strptr = str;
所以你会得到strptr - > “你好”< - str
答案 4 :(得分:0)
指针引用内存地址。您可以使用&
运算符获取内存地址本身,双指针指向指向另一个内存地址的内存地址,因此您将拥有所谓的strcpr->str->"hello"
指针,该指针指向另一个指针。这是一个例子:
char *str = "Hello!";
char **strp = &str;
// The memory address for the string
printf("%p\n", &str);
// This would print the same address as the previous command as
// they both reference the same string
printf("%p\n", strp);
// This prints the value of your string
printf("%s\n", *strp);
注意双指针如何指向第一个字符串的内存地址。输出应为Hello!
。
编辑:C语法