
void IntPoint(int s, int e, int i)
{
while (s != e) {
s = i;
s++;
}
e = i;
}
void main()
{
int a[10] = {0};
IntPoint(a, a + 9, 10); // 尾指针为 a + 9 ,不是 a + 10
for (int i=0; i<10; i++) {
printf("%d ",a[i]);
}
}scanf将接收到的回车扔回到缓冲区,gets将接收到的回车符号转变为\0存入str,使用gets不检查字符串是否超出大小,存在安全问题,建议用fgets
#include <stdioh>
#include <stringh>
int main(void){
char str1[10]="aaaaaaaaa",str2[10]="bbbbbbbbb";
scanf("%s",str1);
// getchar();
gets(str2);
return 0;
}
这里面的getchar()就是为了接收扔回到缓冲区的回车,否则,str2只能接收到一个回车符。
5 scanf("%s",str1);
(gdb) s
abcdef
(gdb) p str1
$1 = "abcdef\000aa"
(gdb) p str2
$2 = "\000bbbbbbbb"C语言不能返回字符串,你只能给函数一个字符数组的参数,用参数来返回
void foo(char str,int n)
{
str[0] = 'a';
str[1] = 'b';
str[2] = 'c';
}
int main()
{
char c[255] = {'\0'};
foo(c,255);
printf("%s\n",c);
}
函数参数里的n是用于判断这个字符串长度,以防越界 *** 作直接写void类型就行了。
void fun (void arr[],int arrlen)//调用的时候需要的话进行相关的强制类型转换。C的话就是这样
{
//写具体的需求
}
如果是C++的话,一般都用模板了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)