【】和*星号的关系
数据名是常量指针
如果像指针一样操作,可以先申请一个指针变量,把数据地址赋给它,再操作。
111111111111111111
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
char a[] = "i am a student";
char b[64];
for (size_t i = 0; *(a+i) != '\0'; i++)
{
*(b + i) = *(a + i);
}
cout << a << endl;
cout << b << endl;
getchar();
return 1;
}
22222222222222222
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
using namespace std;
void copy_str(char* from, char* to)
{
for (; *from != '\0'; from++,to++)
{
*to = *from;
}
*to = '\0';
return;
}
int main()
{
char *from = "abced";
char buf[100];
copy_str(from, buf);
cout << from << endl;
cout << buf << endl;
getchar();
return 1;
}
33333333333333333333333333
//++高于*,
void copy_str2(char* from, char* to)
{
for (; *from != '\0'; )
{
*to++ = *from++;
//先操作后++
//*to = *from, from++ = to++;
}
*to = '\0';
return;
}
4444444444444444444444444444
void copy_str3(char* from, char* to)
{
while ( (*to = *from) != '\0')
{
from++;
to++;
}
return;
}
555555555555555555555555
void copy_str4(char* from, char* to)
{
while ( (*to++ = *from++) != '\0')
{
;
}
return;
}
66666666666666666666666
void copy_str5(char* from, char* to)
{
while ( *to++ = *from++)
{
;
}
return;
}
77777777777777777777777777777
void copy_str7(char* from, char* to)
{
if (from ==NULL || to == NULL)
{
return;
}
while ( *to++ = *from++)
{
;
}
return;
}
子程序里用from会出错,from的值变化了,为了避免这个,可以有个中间变量。