int x = 2; int y = 3; int z[9];
声明三个int变量
int *ptr;
ptr是一个int指针(ptr指向int)
ptr = &x;
ptr指向x(将x的地址分配给变量ptr)
y = *ptr
y = 2 dereferensing(将对象或内容或观察者ptr点指定给y)
*ptr = 1;
x = 1为ptr指向的地址创建新值或内容。
ptr = &z[5]
ptr现在指向z [5]
double update(char*)
Q1:我在每个表达式下的评论是否正确?
Q2:我理解函数update
的值为double,参数是char指针
但是char指针变量发生了什么
只有一个char*
没有指针变量
这是怎么回事?
答案 0 :(得分:0)
我同意问题评论中的一般情绪:在使用StackOverflow之前阅读C书并学习语言。无论如何,我会尽力回答你的疑虑。
cdecl.org是将C声明语法翻译成英语的好工具。
示例:
double update(char*);
将打印:
declare update as function (pointer to char) returning double
Q1:是的。
Q2:我认为你对char*
没有“名字”的事实感到困惑。好吧,函数参数不需要有名称 - 只有类型就足够了。
double update(char*);
double update(char* a);
double update(char* hello);
以上声明是等效的。
如果要引用定义中的参数,那么显然需要一个名称:
double update(char* a)
{
something(a);
}