一直在想,用[]或*声明变量之间的区别是什么?我看待它的方式:
char *str = new char[100];
char str2[] = "Hi world!";
Run Code Online (Sandbox Code Playgroud)
..应该是主要的区别,虽然我不确定你是否可以做类似的事情
char *str = "Hi all";
Run Code Online (Sandbox Code Playgroud)
..因为指针应该引用一个静态成员,我不知道它是否可以?
无论如何,真正困扰我的是知道以下两者之间的区别:
void upperCaseString(char *_str) {};
void upperCaseString(char _str[]) {};
Run Code Online (Sandbox Code Playgroud)
所以,如果有人能告诉我差异,我将不胜感激吗?我有一种预感,除了一些特殊情况外,两者都可以编译得相同吗?
泰
在代码中有一个指向数组的指针,即NameList.我希望逐个打印指针(NameList)中每个数组的内容.以下代码无法执行任务.PLS.救命.
int Data1[] = {10,10};
int Data2[] = {20,20};
int Data3[] = {30,30};
int *NameList[] = {Data1, Data2, Data3};
main()
{ Function(NameList); }
Function(int *ArrayPointer)
{
int i, j, index=0;
for (i=0; i < 3; i++)
{
for (j=0; j < 2; j++)
{
//It does not print the data
printf("\nName: %s", ArrayPointer[index++]);
}
index=0; //Counter reset to 0
ArrayPointer++; //Pointer is incremented by one to pick next array in the pointer
}
}
print("code sample");
Run Code Online (Sandbox Code Playgroud)
该问题原始海报的另一个注释:
我在Turbo C中完成了一个pacman游戏.我正在抛光一些图形例程,以便它可以轻松地重复使用.这只是为了帮助和理解这个概念而创建的一个小样本.代码中的所有数据实际上都是sprite的char数组.现在我只想调用一个传递指针的函数,以便指针中的每个数组都被绘制到屏幕上.如何修改此代码来处理此问题?我实际上是在这里.