相关疑难解决方法(0)

什么是阵列衰减?

什么是阵列的衰变?与数组指针有关系吗?

c c++ arrays pointers

358
推荐指数
8
解决办法
5万
查看次数

字符数组的文字字符串初始值设定项

在以下规则中,当数组衰减到指针时:

左值[见2.5问题]型阵列的-T出现在表达衰变(有三个例外)转换成一个指向它的第一个元素的; 结果指针的类型是指向T的指针.

(例外情况是,当阵列是的sizeof或&运算符的操作数,或为字符数组一个文本字符串初始化.)

如何理解数组是"字符数组的文字字符串初始值设定项"的情况?请举个例子.

谢谢!

c arrays string pointers c99

34
推荐指数
3
解决办法
9740
查看次数

数组类型 - 指定/用作函数参数的规则

当我需要将一个数组传递给一个函数时,似乎所有以下函数声明都可以工作

void f(int arr[])  
void f(int arr[4]) // is this one correct?
Run Code Online (Sandbox Code Playgroud)

为了这:

int a[]={1,2,3,4};
f(a);
Run Code Online (Sandbox Code Playgroud)

但是当我将一个数组分配给另一个数组时,它就失败了

int a[]={1,2,3,4};
int b[4] = a; // error: array must be initialized with a brace-enclosed initializer
Run Code Online (Sandbox Code Playgroud)

那么为什么作为函数的参数传递的数组是可以的,但是在简单赋值的rhs上使用是错误的?

c arrays initialization variable-assignment

6
推荐指数
3
解决办法
3065
查看次数

读取函数指针语法

每次我看一个C函数指针,我的眼睛都会茫然.我看不懂.

这里,这里有两个函数指针TYPEDEFS的例子:

typedef int (*AddFunc)(int,int);
typedef void (*FunctionFunc)();
Run Code Online (Sandbox Code Playgroud)

现在我习惯了这样的事情:

typedef vector<int> VectorOfInts ;
Run Code Online (Sandbox Code Playgroud)

我读到的是

typedef vector<int> /* as */ VectorOfInts ;
Run Code Online (Sandbox Code Playgroud)

但我无法阅读上面的2个typedef.包围和星号放置,这是不合逻辑的.

为什么*旁边的单词AddFunc ..?

c++ function-pointers

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

int(*a)[10]是什么

可能的重复:
解释int(*a)[3]
"char(*a)[12]"是什么意思?

如果你能在程序的帮助下解释我真的很感激

c

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