以下是一段验证代码:出自 C primer plus p297 11.5.1
#include<stdio.h> #include<string.h> //声明一个函数,其作用是在指定的长度终止字符串 void fit(char * str , int n); int main(void) { //数组 n1[] char n1[] = "1234567890"; //一个指向字符串“ 1234567890 ”的指针 char * n2 = "1234567890"; fit(n1,5); fit("01234567890",5); //经过验证 n1 是可以正常输出的, n2 不可以 printf("n1 = %s\nn2 = %s/n",n1,n2); return 0; } void fit(char * str , int n) { if(strlen(str) > n) *(str + n) = '\0'; } 函数 fit()为什么只能接受数组类型,但是不能接受字符串那???
使用字符串数组可以正常输出但是使用字符串就不行,不知道原因是什么,希望对 C 语言有了解的大神可能点拨点拨!
我现在的理解是字符串是常量无法修改,但是为什么本程序又用指针 * str 来传递参数?指针应该是可以同时传递字符串数组和字符串的???
我刚接触 C 语言,可能会犯一些常识性错误,代码书写格式也可能会不规范,请大家多多包涵!!
