指针与字符
1、
直接上码:
#include<iostream>
void print(char* C)
{
int i = 0;
while(C[i] != '\0')
{
printf("%c", C[i]);
i++;
}
printf("\n");
}
int main()
{
char C[20] = "Hello";
print(C);
}
运行结果:
注意:
(1)
while(C[i] != '\0')
换成:
while(*(C+1) != '\0')
效果都一样。
(2)
存储在数组里面的字符结尾是有个 '\0' 作为结束语。
2、
#include<iostream>
void print(char* C)
{
int i = 0;
while(*C != '\0')
{
printf("%c", *C);
C++;
}
printf("\n");
}
int main()
{
char C[20] = "Hello";
print(C);
}
运行结果:
注意代码:
while(*C != '\0')
{
printf("%c", *C);
C++;
}
也是可以的。C++ 表示内存地址的递增,*C表示地址中的值。
3、
#include<iostream>
void print(char* C)
{
int i = 0;
while(*C != '\0')
{
printf("%c", *C);
C++;
}
printf("\n");
}
int main()
{
char *C = "Hello";
print(C);
}
运行结果:
注意:
char *C = "Hello";
在 main() 函数使用这个方法跟 C[20] 输出一样的。
4、
改变字符串:
#include<iostream>
void print(char* C)
{
C[0] = 'A';
while(*C != '\0')
{
printf("%c", *C);
C++;
}
printf("\n");
}
int main()
{
char C[20] = "Hello";
print(C);
}
运行结果:
5、
把char* C 设置了常量:const char* C
#include<iostream>
void print(const char* C)
{
C[0] = 'A';
while(*C != '\0')
{
printf("%c", *C);
C++;
}
printf("\n");
}
int main()
{
char C[20] = "Hello";
print(C);
}
运行结果:
注意:
*C现在是常量,不能被修改。所以报错。
不更改C数组,就能够运行正常。
编程中最没用的东西是源代码,最有用的东西是算法和数据结构。